336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

echo -n 옵션은 new line을 제거하는 옵션인데


Linux에서는 문제가 없지만


Unix환경에서 exec()등을 이용하여 호출하는 경우 아래와 같이 파라메터로 인식하지 못한다.



예) 커맨드 : #exec echo -n "test"

결과    :  -n test


이때 해결 방법은 아래와 같다.


exec echo "test\c"


'\c'를 문자열 끝에 붙여주면 -n옵션과 동일하게 new line이 제거 된다.

'Programming > Linux' 카테고리의 다른 글

ip validation check  (0) 2017.08.25
[raspberry pi] WIFI static IP 설정  (0) 2016.05.13
Centos7 custom build (2)  (0) 2016.03.25
Centos7 custom build (1)  (0) 2016.03.25
yum을 이용한 rpm 다운로드 방법  (0) 2016.03.25
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

ip 유효성 검증 코드


int ip_validation_check(char *ip)

{       

        char ip_1[3];

        char ip_2[3];

        char ip_3[3];

        char ip_4[3];

        int res = 0

        

        //ip validation check

        sscanf(ip, "%[0-9]\.%[0-9]\.%[0-9]\.%[0-9]" , ip_1, ip_2, ip_3, ip_4);

        if(atoi(ip_1) < 0 || atoi(ip_1) > 255) {

                res = 1;

        }

        if(atoi(ip_2) < 0 || atoi(ip_2) > 255) {

                res = 2;

        }

        if(atoi(ip_3) < 0 || atoi(ip_3) > 255) {

                res = 3;

        }

        if(atoi(ip_4) < 0 || atoi(ip_4) > 255) {

                res = 4;

        }


        return res;

}

'Programming > Linux' 카테고리의 다른 글

Unix에서 echo -n 옵션이 안먹을 때  (0) 2017.08.28
[raspberry pi] WIFI static IP 설정  (0) 2016.05.13
Centos7 custom build (2)  (0) 2016.03.25
Centos7 custom build (1)  (0) 2016.03.25
yum을 이용한 rpm 다운로드 방법  (0) 2016.03.25
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

최소 시스템 요구사항

    1. Windows 10 Anniversary Edition – Build 14316
      (2016/4/6 이후, Insider Fast Ring 버전으로 설치 가능)
    2. 64 비트 운영체제 여부
      (위의 정보는 설정 -> 시스템 -> 정보 에서 확인 가능)


설치방법

  • 개발자 모드 설정
    설정 -> 업데이트 및 복구 -> 개발자용 에서
    개발자 모드 선택



  • Linux용 Windows 하위 시스템(베타) 기능 활성화

Windows 기능 켜기/끄기 열기
Linux용 Windows 하위 시스템(베타) 선택





  • 체크박스 선택 후 확인 버튼 누르기
    컴퓨터 다시 시작
  • 명령 프롬프트 창에서 bash 실행
    명령 프롬프트 열고 bash 실행


336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

라즈베리로 드론을 만들어 볼까해서 알아보는 중

 

이런 녀석을 팔고 있었다

 

이름하여 PXFmini(링크)

 

 

 

아두이노로 치면 쉴드같은 녀석으로

 

필요한 센서는 다 달려있고 Power나 확장 포트도 커넥터로 되어 있어

 

추가로 뭔가 달기도 좋을것같다.

 

 

바디는 알리에서 흔하게 팔고 있어

 

H/W구성은 쉽게 할수 있을듯 하니

 

일단 좀더 알아보고 조만간 시작할듯

 

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

강릉-> 속초 라이딩

 

 

해안도로가 아직 한적하니 경치도 좋고

 

기회되면 또 제대로 달려보고 싶은곳

 

 

 

 

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

/etc/network/interfaces  파일에서 


wlan0 관련 부분을 다음과 같이 수정



allow-hotplug wlan0

auto wlan0

iface wlan0 inet static

address <xxx.xxx.xxx.xxx>

netmask <xxx.xxx.xxx.xxx>

gateway <xxx.xxx.xxx.xxx>

wpa-ssid <SSID>

wpa-psk <Password>


예)

allow-hotplug wlan0

auto wlan0

iface wlan0 inet static

address 192.168.30.76

netmask 255.255.255.0

gateway 192.168.30.1

wpa-ssid ssid

wpa-psk password


 귀찮음에 이렇게 설정했지만 이는 보안상 취약할수 있는 방법으로

    /etc/wpa_supplicant/wpa_supplicant.conf 파일을 수정하는것을 권장

'Programming > Linux' 카테고리의 다른 글

Unix에서 echo -n 옵션이 안먹을 때  (0) 2017.08.28
ip validation check  (0) 2017.08.25
Centos7 custom build (2)  (0) 2016.03.25
Centos7 custom build (1)  (0) 2016.03.25
yum을 이용한 rpm 다운로드 방법  (0) 2016.03.25
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

여러모로 검색끝에 아두이노에서 ANT protocol을 사용할수 있는 모듈을 찾았다


Nordic nRF24AP2가 사용된 모듈을 쓰면 될것 같고


일단 수배된 후보는 아래 링크


http://www.aliexpress.com/item/Free-shipping-NRF24AP2-Networking-Module-8-channel-Serial-Interface-ANT-Networking/32460612988.html?spm=2114.01010208.3.1.YzHxQl&ws_ab_test=searchweb201556_9,searchweb201602_1_10037_10017_10034_10021_507_10022_10032_10020_10018_10019,searchweb201603_9&btsid=b4a8c632-0bb8-4b36-82f5-45d8501d365f


그리고 해당 칩에대한 아두이노 라이브러리 링크

https://github.com/brodykenrick/ANTPlus_Arduino



그런데 문제가 Garmin connect API가 $5,000 이라는거....


일단 ANT 동글 가지고 있는게 있으니 아래 링크 방법대로 PC와 ANT+ 연결하여


테스트해볼 예정


https://www.thisisant.com/developer/ant/starting-your-project




참고로 Garmin connect iq SDK 는 아래의 링크를 참고하여 설치하면 됨


http://developer.garmin.com/connect-iq/overview/





336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

요즘 Arduino를 한참 가지고 노는 중


자전거 후방감지 센서를 만들생각을 하고 있던중


이 정보를 어떻게 표시를 할것인가가 큰 고민이었는데


방법을 찾은것 같다.


garmin connect IQ SDK를 이용해 가민 앱을 만들어


시각화가 가능할것같다


http://developer.garmin.com/connect-iq/overview/

'끄적임' 카테고리의 다른 글

매처럼 날려면...  (0) 2010.10.08
내맘대로 계란말이  (0) 2010.09.17
결혼 뭐 하러 하노?  (0) 2010.09.07
계란 볶음밥  (0) 2010.09.06
2011 Mini Countryman!!  (0) 2010.09.03
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 


netflix 다큐 cooked를 보다가

 

만들어보고픈 마음에

 

처음시도해본 빵굽기

 

종이틀에 만들었더니

 

옆구리가 벌어지고

 

계란 흰자를 위에 칠해줘야

 

색이 이쁘게 구워지는데

 

버터를 발랐더니 색이 좀

 

밋밋하다...


 

 

 

 

그리고 이스트를 쓰지 않은

 

천연발효빵을 만들기 위해

 

발효 중인 원종

 

다행히 거품이 생기며 발효가 된다.

 

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

5. Kickstart  파일 생성

 

/ks 디렉토리(ex: ~/work/kickstart_build/isolinux/ks)에  다음의 파일을 ks.cfg 파일로 저장한다.

 

/root/anaconda-ks.cfg

 

5.1 root 암호 변경

 

root계정의 암호를 변경하기 원할 경우 rootpw를 수정해야 한다.

(수정하지 않으면 현재 OS의 root 암호와 동일하게 설정된다)

 

아래와 같이 rootpw --iscrypted 다음 hash된 값이 있는데 이부분을 원하는 암호의 sha512해쉬 값을 넣어주면 된다

 

해쉬의 경우 google에서 'sha512 encrypt' 등으로 검색해보면 간단히 해결할수 있다.

 

ex) rootpw --iscrypted $6$DxkJ9kjcYdHIIUv4$QitYoibBbfE3liAspeZcFzfp9jEiNFRVeY27/GVg9NmOcKsUp1wTmDTVplZqETy5ZN.vYXfRiKoSOW4zKNbLM1

 

 

5.2 파티션

 

파티션 변경이 필요한 경우 아래 사이트를 참조

 

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Installation_Guide/s1-kickstart2-options.html

 

 

5.3 packages

 

이전 3. 항목에서 복사한 패키지를 이곳에 등록을 해줘야 설치가 된다.

 

ex) %packages
      @core
      at
      dialog
      expect
      freetds
      httpd
      ipvsadm
      libnet
      ntp
      pacemaker
      samba-common
      lrzsz
      vim
      perl

      .

      .

      .
      %end

 

Tip!

 

ISO 빌드 이후 설치시 설치 중간에 멈추거나 등록한 패키지가 설치되지 않은경우

 

의존성 문제일 가능성이 크고 ks.cfg 파일과 packages 디렉토리를 잘 확인해야 한다.

 

 

5.4 postinstall

 

설치 이후 진행할 작업을 쉘스크립트 형식으로 %post에 작성한다.

 

이때 파일등의 복사가 필요한경우 항목 2.에서 만들어둔 postinstall 디렉토리에

 

복사 해주면 인스톨후 postinstall 작업이 시작되기 전에 /root/postinstall 디렉도리에 복사가 되어 진다.

 

이를 활용하면 파일등을 복사하는 작업도 가능하다

 

 ks.cfg 예

#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512

 

# Use CDROM installation media
cdrom


# Use text install
install
text


# Run the Setup Agent on first boot
firstboot --disable

# Keyboard layouts
keyboard --vckeymap=us --xlayouts='en_us.utf-8'


# System language
lang ko_KR.UTF-8

 

# Network information
network --bootproto=dhcp --device=eno --onboot=off --ipv6=auto
network --device=lo --hostname=localhost.localdomain

 

# Root password
rootpw --iscrypted $6$DxkJ9kjcYdHIIUv4$QitYoibBbfE3liAspeZcFzfp9jEiNFRVeY27/GVg9NmOcKsUp1wTmDTVplZqETy5ZN.vYXfRiKoSOW4zKNbLM1


# System timezone
timezone Asia/Seoul --isUtc

 

#Selinux
selinux --disabled

 

# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr

 

# Automatic partition (remove all partition)
zerombr
clearpart --all --initlabel
part /boot --fstype=ext4 --size=500
part pv.01 --grow --size=1
volgroup VolGroup --pesize=4096 pv.01
logvol swap --name=lv_swap --vgname=VolGroup --recommended
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200
logvol /opt --fstype=ext4 --name=lv_opt --vgname=VolGroup --grow --size=1
reboot

 

%packages
@core
at
dialog
expect
freetds
httpd
ipvsadm
libnet
ntp
pacemaker
samba-common
lrzsz
vim
perl
mysql-community-client
mysql-community-server
net-snmp
net-tools
perl-Authen-SASL
perl-Business-ISBN
perl-Business-ISBN-Data
perl-Convert-ASN1
perl-Crypt-SSLeay
perl-Digest
perl-Digest-HMAC
perl-Digest-MD5
perl-Digest-SHA
perl-Encode-Locale
perl-File-Listing
perl-GSSAPI
perl-HTML-Parser
perl-HTML-Tagset
perl-HTTP-Cookies
perl-HTTP-Daemon
perl-HTTP-Date
perl-HTTP-Message
perl-HTTP-Negotiate
perl-IO-HTML
perl-IO-Socket-IP
perl-IO-Socket-SSL
perl-JSON
perl-LDAP
perl-LWP-MediaTypes
perl-Net-DNS
perl-Net-HTTP
perl-Net-LibIDN
perl-Net-SSLeay
perl-Text-Soundex
perl-Text-Unidecode
perl-URI
perl-WWW-RobotRules
perl-XML-Filter-BufferText
perl-XML-NamespaceSupport
perl-XML-SAX-Base
perl-XML-SAX-Writer
perl-libwww-perl
iptables-services
openssl
openssh
wget
gdb
tcpdump
%end

 

%post --nochroot
#!/bin/sh

set -x -v
exec 1>/mnt/sysimage/root/kickstart-stage1.log 2>&1

echo "==> copying files from media to install drive..."
cp -r /run/install/repo/postinstall /mnt/sysimage/root

%end


%post
# enable serial port
cat > /etc/init/Stty.conf <<EOF
stop on runlevel [016]
start on runlevel [345]
respawn
instance /dev/ttyS0
exec /sbin/agetty /dev/ttyS0 19200 vt100
EOF
echo 'ttyS0' >> /etc/securetty

 

# Disable SELINUX
echo "SELINUX=disabled" > /etc/sysconfig/selinux
echo "SELINUXTYPE=targeted" >> /etc/sysconfig/selinux

 

# It seems that serial console is auto detected by OS
# vi environment
echo 'alias vi=vim' >> /etc/bashrc
echo "set tabstop=4" >> /etc/vimrc

 

# Language environment
sed -i'' -e "/LANG/c\LANG=\"ko_KR.UTF-8\"" /etc/sysconfig/i18n

 

# make symbolic link of jdk
mkdir /usr/java
mv /root/postinstall/jdk1.8.0_66 /usr/java/
ln -s /usr/java/jdk1.8.0_66 /usr/java/j2sdk
ln -s /usr/bin/xmlstarlet /usr/bin/xml

 

# Disable snmpd verbose logging
#echo OPTIONS=\"-Lnd -Lf /dev/null -p /var/run/snmpd.pid -a\" >> /etc/sysconfig/snmpd
#touch /etc/snmp/snmp.conf
#ln -s /etc/rsyslog.conf /etc/syslog.conf

# Stop unneeded service at this moment
/sbin/chkconfig heartbeat off
/sbin/chkconfig ldirectord off
/sbin/chkconfig rpcbind off
/sbin/chkconfig rpcidmapd off
/sbin/chkconfig nfslock off
/sbin/chkconfig kdump off
/sbin/chkconfig NetworkManager off
/sbin/chkconfig mysqld on

 

# /etc/my.cnf configuration
cat > /etc/my.cnf << EOF
[client]
port        = 3306
socket      = /var/lib/mysql/mysql.sock

[mysqld]
port        = 3306
socket      = /var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
max_connections = 100
binlog_cache_size = 1M
max_heap_table_size = 32M
key_buffer = 32M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 4M
join_buffer_size = 4M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 16M
thread_cache = 8
query_cache_size= 2M
skip-character-set-client-handshake=1
thread_concurrency = 4
slave-skip-errors=1062,1146,1032
expire_logs_days=15

log-bin
binlog_format=MIXED
server-id=
innodb_buffer_pool_size=96M
innodb_log_file_size=16M
innodb_log_buffer_size=1M
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=2
innodb_lock_wait_timeout = 120

[mysqldump]
quick
max_allowed_packet = 16M
add-drop-table
user = anyclick
password = identity
databases

[mysql]
no-auto-rehash
user = anyclick
password = identity

[isamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
open-files-limit = 2048
EOF

#network insterface setting
sed -i'' -e "s/rhgb/rhgb net.ifnames=0 biosdevname=0/" /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg


#uname change
mv /usr/bin/uname /usr/bin/uname.old
chmod 666 /usr/bin/uname.old

mv /root/postinstall/uname_custom /usr/bin/uname
chmod 755 /usr/bin/uname


#rm /root/postinstall
rm -rf /root/postinstall

 

#firewall disable
systemctl stop firewalld
systemctl mask firewalld

 

#iptables enable
systemctl enable iptables

 

#ftp disable
userdel ftp

reboot

%end

 

 

6. ISO 빌드

 

6.1 genisoimage 설치

 

yum install -y genisoimage

 

6.2 mkisofs를 이용한 설치

 

ex)cd ~/work/kickstart_build/
     mkisofs -o centos7-custom.iso -b isolinux.bin -c boot.cat -no-emul-boot -V 'CentOS 7 x86_64' \

               -boot-load-size 4 -boot-info-   table -R -J -v -T isolinux/

 

7. 테스트

 

빌드된 이미지로 부팅하여 설치시 다음의 옵션으로 설치한다.

 

linux inst.ks=cdrom:/dev/cdrom:/ks/ks.cfg

 

Tip!

자동 설치를 원할 경우

 

/isolinux/isolinux.cfg 파일을 다음과 같이 수정하여 항목 6.을 다시 수행하면 된다.

 

ex) label linux
      menu label ^Install UnetOS 7
      kernel vmlinuz
      #  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
      append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 inst.ks=cdrom:/dev/cdrom:/ks/ks.cfg

 

'Programming > Linux' 카테고리의 다른 글

ip validation check  (0) 2017.08.25
[raspberry pi] WIFI static IP 설정  (0) 2016.05.13
Centos7 custom build (1)  (0) 2016.03.25
yum을 이용한 rpm 다운로드 방법  (0) 2016.03.25
gcc 컴파일 옵션.  (0) 2008.08.22

+ Recent posts