本篇記錄如何建立啟動軟体及修改一些開機設定
還有記錄一些不了解地方待查明
更新記錄
item | note |
---|---|
20160825 | 新增: rundvr.sh相關內容 |
新增: modprobe pcspkr | |
20160826 | 新增: 如何裁切fedora24空間 |
20160905 | 新增: 更新程序 |
20161205 | 新增: 增加dom rootfs空間 |
目錄
開發環境OS 過程
建立開發軟体環境
- 切換root (直接使用root登入)
- 安裝開發需要工具
- dnf install libX11*
- dnf install libXv*
- dnf install gtk2*
- dnf install libjpeg-turbo*
- dnf install alsa-lib-devel
- 安裝ffmpeg (./configure & make & make install)
建立DOM軟体執行環境
- 安裝需要工具
- dom裡面的工具以最小安裝為主,這樣子佔的空間才會小
- dnf install libX11*
- dnf install libXv*
- dnf install gtk2-devel
- dnf install libjpeg-turbo-devel
- dnf install gcc
- 安裝其它工具: sendmail, lynx, hdparm, smartctl
修改dom-rootfs內容
使用已建立的STAT-DOM啟動,並且修改相關內容
新增下例檔案
file | descript |
---|---|
/dominfo.txt | 設定軟体程式版本 |
/usr/lib/limit | 設定限制最大ch |
/etc/rc.d/rc.local | 增加自定的開機執行內容 |
/nvr.tar.gz | 目前使用source直接make之後再打包為nvr.tar.gz |
- rc.local
1
2
3
4
5
6
7
8
9
10
11
service smb start
service sshd start
rm -rf /mnt/*
mount -t tmpfs tmpfs /disks
cd /disks&&mkdir -p {1..24} tmp
tar xvf /nvr.tar.gz
cd /disks/nvr
sleep 3s
xinit ./rundvr.sh
說明
- 在GNOME下,可直接使用./nvr帶起
- 若在terminal下需要使用xinit nvr帶起
- xinit - X Window System initializer
- 新增下例目錄
- mkdir /disks
- mkdir /disks/tmp
- mkdir /disks/picture
nvr.tar.gz 內容
- 設定開機啟動至文字模式(runlevel 3)
- systemctl set-default multi-user.target
rundvr.sh
- 當nvr離開時才會執行下例
- poweroff
- reboot
- rundvr 程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
ibus-daemon&
imsettings-start
modprobe pcspkr
xset s 0
xset -dpms
systemctl stop firewalld.service
#service iptables stop
#export XMODIFIERS=@im=SCIM
#export GTK_IM_MODULE="scim"
#scim -d
cd /nvr > /disk/nvr.log
#insmod r8168.ko
#thttpd -p 80 -d /disks/nvr/web -u root &
#./thttpd/thttpd -p 80 -C thttpd/thttpd.conf -u root &
./mkmountpoints.sh
./ipserver&
./watchdog.sh &
./nvr
if [ -f /disks/tmp/poweroff.flag ] ; then
echo " `date` ---333--power off">>/disks/1/run.log
/sbin/poweroff
else
echo " `date` ---333--reboot">>/disks/1/run.log
/sbin/reboot
fi
說明:
- imsettings-start: 英文输入法里不要开启,若要使用中文输入法就开启? (不了解地方)
- IMSettings is a framework that delivers Input Method settings and applies the changes immediately
- IMSettings: Delivery framework for general Input Method configuration
- 開啟pc 嗶嗶 (beep)
- modprobe pcspkr
目前使用lsmod | grep pcspkr,無找到到相關的ko載入
需要先 dnf install beep,之後再 modprobe pcspkr,就可以了
- modprobe pcspkr
- xset
xset - user preference utility for X- s: The s option lets you set the screen saver parameters.
- -dpms: The dpms option allows the DPMS (Energy Star) parameters to be set.
記錄:
- 由於系統第一次是無/config,因此帶起nvr之前會當機,重機之後再帶一次nvr即正常
如何裁切fedora24空間
何為PackageKit
- PackageKit Wiki
- PackageKit 是一個自由且開源的应用软件套裝,旨在為多種不同的软件包管理系统提供一個一致的高階前端
- PackageKit itself runs as a system-activated daemon, packagekitd
- pkcon 供命令行界面使用。
由cache清除空間
關閉package keep cache
預設的keep the package cache是被打開的
修改/etc/PackageKit/PackageKit.conf,將KeepCache設定為false使用pkcon清除package cahche
Fedora 23 — Can I safely delete files in /var/cache/PackageKit/metadata/updates/packages
指令:pkcon refresh force -c -11
2
3
4
5
6
7
8
9
10
11[root@localhost cache]# pkcon refresh force -c -1
Refreshing cache [=========================]
Downloading repository information[=========================]
Loading cache [=========================]
Downloading repository information[=========================]
Loading cache [=========================]
Downloading repository information[================= ] (68%)
[=========================]
Loading cache [=========================]
Finished [=========================]
[root@localhost cache]#未設定前
/ 使用96%(剩下 160M空間)
/var/cache/PackageKit佔了 371M ->這個可以在空出來
此時使用dnf clean all,已無法在由cache空出空間1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 316K 1.9G 1% /dev/shm
tmpfs 1.9G 9.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sdb2 3.5G 3.2G 160M 96% /
tmpfs 1.9G 56K 1.9G 1% /tmp
/dev/sdb1 120M 42M 70M 37% /boot
tmpfs 1.9G 66M 1.9G 4% /disks
tmpfs 384M 16K 384M 1% /run/user/42
tmpfs 384M 12K 384M 1% /run/user/0
[root@localhost cache]# du -h --max-depth=1
xx
371M ./PackageKit
4.0K ./foomatic
4.0K ./krb5rcache
36K ./libvirt
72K ./ldconfig
424K ./man
380M .設定後
package cache由371M變成131M,少了約2xxM1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18[root@localhost cache]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 712K 1.9G 1% /dev/shm
tmpfs 1.9G 9.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sdb2 3.5G 3.1G 248M 93% /
tmpfs 1.9G 60K 1.9G 1% /tmp
/dev/sdb1 120M 42M 70M 37% /boot
tmpfs 1.9G 66M 1.9G 4% /disks
tmpfs 384M 16K 384M 1% /run/user/42
tmpfs 384M 20K 384M 1% /run/user/0
tmpfs 384M 4.0K 384M 1% /run/user/984
[root@localhost cache]# du -hx --max-depth=1
xx
131M ./PackageKit
xx
138M .
啟動程序
/proc/sys/vm/overcommit_memory
5.4. 微調處理能力
echo 1 > /proc/sys/vm/overcommit_memory- 0 — 預設設定。
kernel 會進行探索式的記憶體過度寫入處理,方法是預測記憶體的可用量、並讓公然違規的需求失敗.
不幸的是,因為記憶體是以探索式、而非精準的演算法則來分配,因此這設定有時會過度使用系統上的可用記憶體 - 1 — kernel 不進行記憶體過度寫入處理.
在此設定下,過度使用記憶體的機會會增加,但對於頻繁存取記憶體的任務來說,效能也會增加。
- 0 — 預設設定。
SIGPIPE訊號
signal(SIGPIPE,SIG_IGN);
若socket已調用clos,此時再用write程式將會收到SIGPIPE訊號,使用程式退出
為了防止程式退出,此時可以設定signal(SIGPIPE,SIG_IGN)
關於SIGPIP訊號
signal(SIGCHLD, SIG_IGN)]TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点各负责一条. 当对端调用close时, 虽然本意是关闭整个两条信道,但本端只是收到FIN包. 按照TCP协议的语义, 表示对端只是关闭了其所负责的那一条单工信道, 仍然可以继续接收数据. 也就是说, 因为TCP协议的限制,一个端点无法获知对端的socket是调用了close还是shutdown.
更新程序
combobox_update_disk_onchanged
- 注意附檔案一定要為.firmware
- combobox_update_disk_onchanged
需要先找出usb是那一個(即為未在hdd rec及boot hdd裡面的)
- umount /mnt
- mount /dev/sdc1 /mnt
- find /mnt -maxdepth 1 -name .firmware > /disks/tmp/files.txt
當usb裡面沒有任何.firmware檔案,則會沒有檔案可以選(並且直接umount /mnt) - 若有清單則一個一個加入
由此可知,是在點選時,動態mount usb,並且產生清單
find_usb_disk
- find_usb_disk
1
2
3
4
5
6
7
8
9249 find_usb_disk<line:992> /dev/sda1 is used
250 find_usb_disk<line:987> add usb:/dev/sdc1
251 find_usb_disk<line:999> start find usb =======<<<======
252 update_onchange<line:1733> set selected combobox_disk:/dev/sdc1
253 combobox_update_disk_onchanged<line:1322> -*-*- start -*-*- /dev/sdc1
254 combobox_update_disk_onchanged<line:1334> mount disk:/dev/sdc1
255 combobox_update_disk_onchanged<line:1347> find /mnt -maxdepth 1 -name "*.firmware" > /disks/tmp/files.txt res=0 errno=22
256 combobox_update_disk_onchanged<line:1374> find fw:/mnt/pc200_v2.0.2.tar.gz.firmware
257 combobox_update_disk_onchanged<line:1384> -*-*-*-*- end res=0*-*-*-*-*-*-``
增加dom rootfs空間
將一些目錄mount到/tmp,增加dom rootfs空間
df -h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 308K 3.9G 1% /dev/shm
tmpfs 3.9G 9.5M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda2 3.5G 2.9G 433M 88% /
tmpfs 3.9G 56K 3.9G 1% /tmp
tmpfs 3.9G 0 3.9G 0% /var/spool
tmpfs 3.9G 76K 3.9G 1% /var/log
tmpfs 3.9G 0 3.9G 0% /var/cache/PackageKit
tmpfs 3.9G 0 3.9G 0% /var/tmp
/dev/sda1 120M 48M 64M 44% /boot
tmpfs 3.9G 66M 3.9G 2% /disks
tmpfs 797M 16K 797M 1% /run/user/42
tmpfs 797M 16K 797M 1% /run/user/0cat /etc/fstab
1
2
3
4
5
6
7LABEL=dom-rootfs / ext4 defaults 1 1
LABEL=dom-boot /boot ext4 defaults 1 2
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/spool tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/cache/PackageKit tmpfs defaults,noatime,mode=1777 0 0
參考來源
- 使用 systemctl 操作系統層級 target
- 設定開機後立即啟動服務的方法
- IMSettings: Delivery framework for general Input Method configuration
- 5.4. 微調處理能力
- 關於SIGPIP訊號
- signal(SIGCHLD, SIG_IGN)
- PackageKit
- PackageKit Wiki
- Fedora 23 — Can I safely delete files in /var/cache/PackageKit/metadata/updates/packages
- pppoe-stop(8) - Linux man page