1.u?启启动?????Դ??Դ??
2.å¦ä½å¶ä½grubå¯å¨å
ç
u??????Դ??Դ??
本篇内容不讲解uboot源码,只总结面试中高频问到的动盘重要知识点。内容适用于嵌入式新人了解uboot,源码源码对老手有复习和查漏补缺的盘盘源作用。
1、启启动PC机启动:上电后,动盘dotcms源码下载BIOS程序初始化DDR内存和硬盘,源码源码从硬盘读取OS镜像到DDR,盘盘源跳转执行OS。启启动
2、动盘嵌入式Linux系统启动:上电后执行uboot,源码源码初始化DDR、盘盘源Flash,启启动数藏PHP源码将OS从Flash读到DDR,动盘启动OS。源码源码
3、uboot定义与作用:uboot属于bootloader,作为单线程裸机程序,主要作用是hadoop rpc 框架源码初始化硬件、内存、flash等,引导内核启动。
4、uboot启动阶段(不同平台差异):MTK平台:boot rom -> preloader -> lk -> kernel;RK平台:bootrom -> spl(miniloader) -> uboot -> trust -> kernel;NXP平台:bootrom -> bl2 -> ATF -> uboot -> kernel。
5、autojs语音操作源码uboot支持多种启动方式:SPI Flash/eMMC/Nvme/SD/Hard Disk/U-Disk/net。启动方式不同,固件存放位置也不同。
6、掌握uboot的关键点:命令和环境变量。uboot启动后大部分工作在shell中完成,cdf溯源码真假命令用于操作,环境变量如bootcmd和bootargs,用于设置启动参数。
7、bootargs参数详解:root用于指定rootfs位置,console用于设置控制台,mem用于指定内核使用内存大小,ramdisk_size用于设置ramdisk大小,initrd用于指定initrd参数,init用于指定启动脚本,mtdparts用于设置分区。
8、常用bootargs组合:文件系统为ramdisk、jffs2类型、nfs等不同情况下的bootargs设置示例。
总结,了解uboot是嵌入式开发的基础,掌握其启动过程和关键参数,对提高开发效率和解决问题有重要作用。
å¦ä½å¶ä½grubå¯å¨å ç
å°ä¸è½½å¾å°çgrldrç´æ¥æ¹å为grldr.bifï¼ç¶å使ç¨UltraISOæ°å»ºä¸ä¸ªISOéåï¼éæ©âå¯å¨å çï¼å è½½å¼å¯¼ä¿¡æ¯âå è½½grldr.bifã
è¿æ¯ï¼ä½ æ°å»ºçISOéåå·²ç»å ·å¤äºå çå¯å¨åè½ï¼grubèåæ件menu.lstæ¤æ¶åºè¯¥æ¾å¨å çæ ¹ç®å½ï¼ä¸ç¶grldrå¯å¨åæ¾ä¸å°ã
ç½ä¸ä¸å°æç« è®²è¿°äºå¦ä½å°grubè£ å¨è½¯çä¸ï¼å½ç¡¬çå¼å¯¼ä¿¡æ¯è¢«ç ´åæ¶ï¼è¿å¼ 软çå°±å¯ä»¥æ´¾ä¸ç¨åºãä½æ¯å¯¹äºä¸äºæ²¡æ软驱çç¨æ·ï¼æè 使ç¨è½¯é©±ä¸æ¹ä¾¿çç¬è®°æ¬ç¨æ·ï¼å¦æè½ç¨å çå¼å¯¼ç³»ç»ï¼åä¼æ¹ä¾¿å¾å¤ãæ¬æå°è¯´æå¦ä½å¶ä½è¿å¼ å çã
é¦å å设æ们æä¸ä¸ªè¿ä½è¯å¥½çlinuxåè¡çï¼å«cdrtools软件å ï¼ï¼cdædvdå»å½æºï¼å·²ç»é 置好ï¼å¯ä»¥å¨linuxè¿ä½æ£å¸¸ï¼å ³äºå¦ä½è®¾ç½®ï¼ç½ä¸çæç« å¾å¤ï¼ï¼grub软件å ã
æçç³»ç»æ¯redhat linux 9.0,ä½è¿ä¸ªåè¡ççgrubå ä¸ä¸å«ææ们æéè¦çstage2_eltoritoæ件ï¼è¿ä¸ªæ件æ¯å¶ä½grubå¯å¨å ççæéè¦çæ件ï¼æ以æä¸è½½äº0.ççgrub,å°åï¼ftp://alpha.gnu.org/gnu/grub/grub-0..tar.gz
æ¥ä¸æ¥æ¯å®è£ grubï¼åå¤æ°æºç å å®è£ çæ¹å¼ä¸æ ·ï¼æ们éè¦ï¼
tar zxvf grub-0..tar.gz
cd grub-0.
./configure
make
make install
好äºï¼grubå®è£ å®æï¼å¾å°äºstage2_eltoritoï¼ä¸ºäºèç大家çæ¶é´ï¼ææåäºè¿ä¸ªæ件ï¼å¦æåªä½å¯ä»¥ä¸ä¼ ä¾å¤§å®¶ä¸è½½ï¼mailæï¼
ç°å¨æ们è¿æ ·åï¼å¯ä»¥å¾å°èªå·±çgrubå çéåï¼
mkdir iso
mkdir -p iso/boot/grub
cp /stage2_eltoritoæå¨çè·¯å¾/stage2_eltorito iso/boot/grub
cp /boot/grub/menu.lst iso/boot/grub
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso
好äºï¼ç°å¨grub.isoå°±æ¯ä½ æéè¦çéåäº
ç¶åç¨cdrecordæè å端æéåå»å¨cdr/rwå°±å¯ä»¥äº
cdrecord -v dev=0,0,0 /grub.isoçè·¯å¾/grub.iso speed=8
ä¸é¢çå½ä»¤ï¼æ ¹æ®èªå·±çæ åµä¿®æ¹
好äºï¼è¿æ ·æ们就å¾å°äºä¸å¼ grubå¯å¨å çã
å½ç¶ï¼ç±äºå¶ä½grubå¯å¨å çåªéè¦å¤kåèï¼æ以å¨å¶ä½isoçæ¶åï¼ä½ å¯ä»¥æ¾ä¸äºå ¶ä»æç¨çä¸è¥¿å¨isoæ件夹ä¸ï¼åæéåã