构建自己的 LINUX 系统(四)
2016-10-11 09:26
435 查看
这次我们要为 mylinux 预装应用程序了,考虑到 TinyCore 没有预装 wifi 模块,
所以我们在 mylinux 上安装一下吧!
所以我们在 mylinux 上安装一下吧!
准备 TC 的 wifi 模块包及所需要的依赖库
首先准备 wifi 模块和依赖库的安装包列表(你也可以自己去准备,不过我这里已经准备了一个了)cd mylinux/ mkdir extends/wifi_module wget -O extends/wifi_module/wifi.lst http://git.oschina.net/bxtkezhan/TCLinux-DEP/raw/master/wifi.lst?dir=0&filepath=wifi.lst&oid=d3486be12b4c6d5ce8a02b088962d859b25b0d8f&sha=552f7598cc915fdb0f8b713f653d60c33a675294[/code]
这个列表其实只是从 TC 的安装软件中直接获取的,并不方便我们使用,于是我们构建如下 Python 工具来调整它mkdir tools touch tools/make_good_lst.py
代码如下:#! /usr/bin/env python3 def calc_space(line): for i in range(len(line)): if line[i] != ' ': return i def calc_levels(lines): levels = list(set(map(calc_space, lines))) levels.sort() return levels def calc_indexs(lines, level): indexs = [] levels = list(map(calc_space, lines)) for i in range(len(levels)): if levels[i] == level: indexs.append(i) return indexs def sort_lines(lines): levels = calc_levels(lines) outlines = [] if len(levels) <= 1: return lines top_indexs = calc_indexs(lines, levels[0]) for i in range(len(top_indexs)-1): newlines = lines[top_indexs[i]+1:top_indexs[i+1]] sections = sort_lines(newlines) outlines.extend(sections) outlines.append(lines[top_indexs[i]]) else: newlines = lines[top_indexs[-1]+1:] sections = sort_lines(newlines) outlines.extend(sections) outlines.append(lines[top_indexs[-1]]) return outlines def to_sort_set(lines): lines = list(map(str.lstrip, lines)) outlines = [] for line in lines: if line not in outlines: outlines.append(line) return outlines def load_lst(filename): try: with open(filename, 'r') as f: return f.readlines() except IOError as e: print('Read Faild, Error: {}'.format(e)) return False def dump_lst(lines, filename): try: with open(filename, 'w') as f: for line in lines: f.write(line) except IOError as e: print('Write Faild, Error: {}'.format(e)) def make_good_lst(input_lst, output_lst): lines = load_lst(input_lst) if lines != False and len(lines) > 0: lines = sort_lines(lines) lines = to_sort_set(lines) dump_lst(lines, output_lst) if __name__ == '__main__': import sys if len(sys.argv) != 3: print('Bad CMD!') else: make_good_lst(sys.argv[1], sys.argv[2])
现在我们来使用它生成我们需要的包列表python3 tools/make_good_lst.py extends/wifi_module/wifi.lst extends/wifi_module/wifi.lst
下载表单中包文件并批量生成校验文件cd extends/wifi_module for tcz in $(cat wifi.lst); do wget "http://tinycorelinux.net/7.x/x86/tcz/$tcz"; done for tcz in *.tcz; do md5sum $tcz > "$tcz.md5.txt"; done ls cd ../..重构我们的 mylinux
编写 mylinux 下的 MakefileQEMU:=qemu-system-i386 out.iso: boot/ cde/ extends/ mkdir build/ cp boot/ build/ -af cp cde/ build/ -af cp extends/tcz_lib/* build/cde/optional/ -af cp extends/wifi_module/*.tcz* build/cde/optional/ -af cat extends/wifi_module/wifi.lst >> build/cde/copy2fs.lst cat extends/wifi_module/wifi.lst >> build/cde/onboot.lst cat extends/wifi_module/wifi.lst >> build/cde/xbase.lst mkisofs -D -r -V "mylinux v0.10" -cache-inodes -J -l \ -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table -o out.iso build/ isohybrid out.iso cp -fv out.iso release/mylinux.iso run: out.iso ${QEMU} -cdrom out.iso -boot d -m 256 clean: rm -rf out.iso build/
重构并运行测试sudo make clean sudo make make run
相关文章推荐
- 构建自己的Linux系统反思(一)
- 构建自己的 LINUX 系统(二)
- 构建自己的Linux系统记录(四)
- 从头构建自己的Linux系统 -转
- 构建自己的Linux系统记录(二)
- 从头构建自己的Linux系统
- 构建自己的 LINUX 系统(一)
- 为Cubieboard2构建自己的的Debian Linux的步骤(3)(分色排版)下载并配置debian系统
- 构建自己的Linux系统记录(五)
- 构建自己的Linux系统记录(三)
- 构建自己的 LINUX 系统(三)
- 构建自己的Linux系统记录(一)
- 使用cacti + rrd构建免费的Linux系统监控平台
- 手把手教你如何建立自己的Linux系统(LFS速成手册)
- 在VM上学习嵌入式Linux系统的构建之二--内存文件系统
- 自己的linux系统安装以及软件配置
- 手把手教你如何建立自己的Linux系统(LFS速成手册)
- Linux系统下选择自己喜欢的vim配色方案
- 预告:在VM上学习嵌入式Linux系统的构建
- 嵌入式linux系统网络超级服务器构建指南(for arm)