嵌入式Linux开发可以分为底层系统、Linux C、QT应用开发。
底层系统开发包括bootloader、Linux kernel的移植、rootfs移植。bootloader并不是简单的uboot,很多SOC启动过程要分为4个步骤bootrom、bt1、bt2、uboot。kernel移植最大的难度是驱动开发,这也是大部分驱动软件工程师要做的事。rootfs比较复杂,首先选择有busybox、buildroot、Yocto等,首先要记住rootfs的基本目录是一样的不同点在于包含的库的多少问题。这里最容易被忽略的是kernel在rootfs中的连接文件,比如DRM驱动表现为libdrm和qteglfs等显示框架,不应该把驱动和rootfs独立开来。
Linux C应用开发是独立的一大块,最常用的是文件、线程进程、网络、数据库。这个没什么好说的就是用Linux C库函数做各种开发。
Qt是嵌入式Linux最常用的图形应用开发库,这个包含的内容比Linux C更加丰富。
除此之外Linux还要掌握makefile、shell编写、gcc编译规则等。