########################################################### # # Beaglebone Black 최적화 스크립트 # # 이 스크립트는 # BBB-eMMC-flasher-ubuntu-16.04.1-console-armhf-2017-01-13-2gb.img # 에서 시험되었으며, 반드시 인터넷이 가능하고 ubuntu/temppwd # 계정으로 실행해야 한다. # ########################################################### EXTERNAL_MOUNT_DIR=/external ########################################################### # # root 패스워드 설정 # ########################################################### sudo echo "PLEASE, ENTER NEW ROOT PASSWORD." sudo passwd root ########################################################### # # lrzsz 설치 # ########################################################### sudo apt-get update -y sudo apt-get -y install lrzsz ########################################################### # # 로케일 설정 # ########################################################### sudo locale-gen "ko_KR.UTF-8" ########################################################### # # X11 및 불필요한 패키지 제거 # ########################################################### sudo apt-get -y remove --purge lightdm sudo apt-get -y remove --purge gnome* sudo apt-get -y remove --purge qtcreator* sudo apt-get -y remove --purge x11-common sudo apt-get -y remove --purge apache2 ########################################################### # # eMMC 초기화 (초기화 시키면 부팅스위치로 부팅해야 함) # /dev/mmcblk0 : sdcard # /dev/mmcblk1 : eMMC # sudo dd if=/dev/zero of=/dev/mmcblk1 bs=512 count=1 # ########################################################### #dd if=/dev/zero of=/dev/mmcblk0 bs=512 count=1 #dd if=/dev/zero of=/dev/mmcblk1 bs=512 count=1 ########################################################### # # eMMC 자동 마운트 추가 # (Debian이 Standalone 버전인 경우 사용) # ########################################################### #mkdir /emmc #chmod 707 /emmc #echo "/dev/mmcblk1p1 /emmc auto auto,rw,async,user,nofail 0 2" >> /etc/fstab ########################################################### # # MicroSD 자동 마운트 추가 # (Debian이 Flasher 버전인 경우 사용) # ########################################################### #mkdir /sdcard #chmod 707 /sdcard #echo "/dev/mmcblk0p1 /sdcard auto auto,rw,async,user,nofail 0 2" >> /etc/fstab ########################################################### # # 타임존 셋팅 # ########################################################### sudo chmod 666 /etc/timezone sudo echo "Asia/Seoul" > /etc/timezone #sudo echo "Etc/UTC" > /etc/timezone sudo chmod 644 /etc/timezone ########################################################### # # 네트워크 셋팅 (IP주소 수정 후 실행) # # 윈도우PC의 Linux USB Ethernet 인터페이스의 IPV4주소는 # 192.168.7.1/255.255.255.252로 변경해 주어야 한다. # # Wifi와 Ethernet은 한가지만 사용가능하며, # 만일 Wifi를 사용하기 위해서는 "auto eth0"를 삭제한다. # ########################################################### sudo cp /etc/network/interfaces /etc/network/interfaces.old sudo chmod 666 /etc/network/interfaces sudo echo "# localhost" > /etc/network/interfaces sudo echo "auto lo" >> /etc/network/interfaces sudo echo "iface lo inet loopback" >> /etc/network/interfaces sudo echo "" >> /etc/network/interfaces sudo echo "# Ethernet" >> /etc/network/interfaces sudo echo "auto eth0" >> /etc/network/interfaces sudo echo "iface eth0 inet static" >> /etc/network/interfaces sudo echo "address 192.168.0.3" >> /etc/network/interfaces sudo echo "netmask 255.255.255.0" >> /etc/network/interfaces sudo echo "gateway 192.168.0.1" >> /etc/network/interfaces sudo echo "dns-nameservers 168.126.63.1" >> /etc/network/interfaces sudo echo "" >> /etc/network/interfaces sudo echo "# USB" >> /etc/network/interfaces sudo echo "auto usb0" >> /etc/network/interfaces sudo echo "iface usb0 inet static" >> /etc/network/interfaces sudo echo "address 192.168.7.2" >> /etc/network/interfaces sudo echo "netmask 255.255.255.252" >> /etc/network/interfaces sudo echo "gateway 192.168.7.1" >> /etc/network/interfaces sudo echo "dns-nameservers 168.126.63.1" >> /etc/network/interfaces sudo echo "" >> /etc/network/interfaces sudo echo "# Wifi" >> /etc/network/interfaces sudo echo "#auto wlan0" >> /etc/network/interfaces sudo echo "#allow-hotplug wlan0" >> /etc/network/interfaces sudo echo "#iface wlan0 inet static" >> /etc/network/interfaces sudo echo "#address 192.168.0.3" >> /etc/network/interfaces sudo echo "#netmask 255.255.255.0" >> /etc/network/interfaces sudo echo "#gateway 192.168.0.1" >> /etc/network/interfaces sudo echo "#dns-nameservers 168.126.63.1" >> /etc/network/interfaces sudo echo "#wpa-ssid \"N702BCM\"" >> /etc/network/interfaces sudo echo "#wpa-psk \"0123456789\"" >> /etc/network/interfaces sudo chmod 644 /etc/network/interfaces ########################################################### # # 네트워크 셋팅 (DNS) # ########################################################### sudo chmod 666 /etc/resolv.conf sudo echo "search local" > /etc/resolv.conf sudo echo "nameserver 168.126.63.1" >> /etc/resolv.conf sudo chmod 644 /etc/resolv.conf ########################################################### # # USB 네트워크 인터페이스 이름변경 금지 # ########################################################### sudo mv /lib/udev/rules.d/73-usb-net-by-mac.rules /lib/udev/rules.d/73-usb-net-by-mac.rules.no_run ########################################################### # # 전체 패키지 업데이트 # ########################################################### sudo apt-get update -y sudo apt-get upgrade -y ########################################################### # # 불필요한 서비스 제거 # # enable 되어있는 서비스 보기 # ls -1 /etc/rc$(runlevel| cut -d" " -f2).d/S* | awk -F'[0-9][0-9]' '{print "Startup :-> " $2}' # ########################################################### sudo update-rc.d -f acpid remove sudo update-rc.d -f alsa-utils remove sudo update-rc.d -f apache-htcacheclean remove sudo update-rc.d -f apache2 remove sudo update-rc.d -f avahi-daemon remove sudo update-rc.d -f bootlogs enable sudo update-rc.d -f cgmanager remove sudo update-rc.d -f cgproxy remove sudo update-rc.d -f console-setup remove sudo update-rc.d -f dbus remove sudo update-rc.d -f dnsmasq remove sudo update-rc.d -f haveged remove sudo update-rc.d -f hdparm remove sudo update-rc.d -f hostapd remove sudo update-rc.d -f keyboard-setup remove sudo update-rc.d -f killprocs remove sudo update-rc.d -f kmod enable sudo update-rc.d -f loadcpufreq enable sudo update-rc.d -f motd enable sudo update-rc.d -f pppd-dns remove sudo update-rc.d -f procps enable sudo update-rc.d -f rc.local enable sudo update-rc.d -f rmnologin enable sudo update-rc.d -f rsync remove sudo update-rc.d -f screen-cleanup remove sudo update-rc.d -f sendsigs remove sudo update-rc.d -f sudo enable sudo update-rc.d -f ti-ipc-dra7xx enable sudo update-rc.d -f udev remove sudo update-rc.d -f udhcpd remove sudo update-rc.d -f umountfs remove sudo update-rc.d -f umountroot remove sudo update-rc.d -f urandom remove # systemctl -t service -a sudo systemctl disable alsa-restore.service sudo systemctl disable alsa-state.service sudo systemctl disable alsa-store.service sudo systemctl disable avahi-daemon.service sudo systemctl disable bb-wl18xx-bluetooth.service sudo systemctl disable bluetooth.service sudo systemctl disable bonescript-autorun.service sudo systemctl disable bonescript.service sudo systemctl disable bonescript.socket sudo systemctl disable cloud9.service sudo systemctl disable cloud9.socket sudo systemctl disable connman.service sudo systemctl disable dbus.service sudo systemctl disable node-red.service sudo systemctl disable systemd-timesyncd sudo systemctl disable udhcpd.service sudo systemctl enable cpufrequtils.service sudo systemctl enable cron.service sudo systemctl enable getty@tty1.service sudo systemctl enable kmod-static-nodes.service sudo systemctl enable loadcpufreq.service sudo systemctl enable networking.service sudo systemctl enable networking.service sudo systemctl enable rc-local.service sudo systemctl enable rsyslog.service sudo systemctl enable serial-getty@ttyS0.service sudo systemctl enable ssh.service sudo systemctl enable systemd-fsck@dev-mmcblk1p1.service sudo systemctl enable systemd-journal-flush.service sudo systemctl enable systemd-journald.service sudo systemctl enable systemd-logind.service sudo systemctl enable systemd-modules-load.service sudo systemctl enable systemd-random-seed.service sudo systemctl enable systemd-remount-fs.service sudo systemctl enable systemd-sysctl.service sudo systemctl enable systemd-timesyncd.service sudo systemctl enable systemd-tmpfiles-setup-dev.service sudo systemctl enable systemd-tmpfiles-setup.service sudo systemctl enable systemd-udev-trigger.service sudo systemctl enable systemd-udevd.service sudo systemctl enable systemd-update-utmp.service sudo systemctl enable systemd-user-sessions.service sudo systemctl enable udhcpd.service sudo systemctl enable wpa_supplicant.service ########################################################### # # 불필요한 파일 정리 # ########################################################### sudo rm -f /var/log/*log sudo rm -f /var/log/messages sudo rm -rf /tmp/* ########################################################### # # RootFS 파티션을 SD Card 전체용량을 사용하도록 확장 # ########################################################### sudo sync sudo /opt/scripts/tools/grow_partition.sh ########################################################### # # 필요한 패키지 설치 # (설치가 안될 수 있으니 리부팅 후 확인 요망) # ########################################################### sudo apt-get -y install screen wireless-tools wpasupplicant hostapd sudo apt-get -y install gzip bzip2 tar unrar arj p7zip minicom mc ftp lsof sudo apt-get -y install iptables bridge-utils isc-dhcp-server sudo apt-get -y install ntfs-3g ########################################################### # # vsftpd 패키지 설치 # ########################################################### sudo apt-get -y install vsftpd sudo echo "chroot_local_user=YES" >> /etc/vsftpd.conf sudo echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf sudo systemctl disable vsftpd.service ########################################################### # # nfs 패키지 설치 # ########################################################### #sudo apt-get -y install nfs-kernel-server #sudo apt-get -y install rpcbind #sudo update-rc.d nfs-kernel-server remove #sudo update-rc.d rpcbind remove ########################################################### # # samba 패키지 설치 # ########################################################### sudo apt-get -y install samba usermod -d ${EXTERNAL_MOUNT_DIR} ubuntu ########################################################### # # samba 설정 # ########################################################### sudo sync sudo echo "" >> /etc/samba/smb.conf sudo echo "[global]" >> /etc/samba/smb.conf sudo echo "netbios name = BBB" >> /etc/samba/smb.conf sudo echo "workgroup = WORKGROUP" >> /etc/samba/smb.conf sudo echo "hosts allow = 127. 192.168.0." >> /etc/samba/smb.conf sudo echo "" >> /etc/samba/smb.conf sudo echo "[share]" >> /etc/samba/smb.conf sudo echo " comment = Beaglebone Black" >> /etc/samba/smb.conf sudo echo " browseble = yes" >> /etc/samba/smb.conf sudo echo " writable = yes" >> /etc/samba/smb.conf sudo echo " share modes = yes" >> /etc/samba/smb.conf sudo echo " valid users = @users" >> /etc/samba/smb.conf sudo echo " create mode = 0660" >> /etc/samba/smb.conf sudo echo " directory mode = 0770" >> /etc/samba/smb.conf sudo echo " guest ok = yes" >> /etc/samba/smb.conf sudo echo " path = ${EXTERNAL_MOUNT_DIR}" >> /etc/samba/smb.conf sudo echo "#!/bin/sh" > /start.samba sudo echo "mkdir -p ${EXTERNAL_MOUNT_DIR}" >> /start.samba sudo echo "mount -t ntfs-3g /dev/sda1 ${EXTERNAL_MOUNT_DIR}" >> /start.samba sudo echo "#systemctl start nmbd.service" >> /start.samba sudo echo "systemctl start smbd.service" >> /start.samba sudo echo "#!/bin/sh" > /stop.samba sudo echo "#systemctl stop nmbd.service" >> /stop.samba sudo echo "systemctl stop smbd.service" >> /stop.samba sudo echo "umount /dev/sda1" >> /stop.samba sudo chmod 755 /start.samba sudo chmod 755 /stop.samba sudo systemctl disable nmbd.service sudo systemctl disable smbd.service mkdir -p ${EXTERNAL_MOUNT_DIR} chmod 755 ${EXTERNAL_MOUNT_DIR} ########################################################### # # timezone & locale # ########################################################### apt-get -y install language-pack-ko locale-gen ko_KR.UTF-8 update-locale LANG=ko_KR.UTF-8 timedatectl set-timezone "Asia/Seoul" ########################################################### # # sshd root 계정 활성화 # ########################################################### sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config sudo sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config ########################################################### # # 불필요한 파일들 삭제 # ########################################################### sudo apt-get -y -f autoremove sudo apt-get -y autoclean sudo apt-get -y clean sudo sync