Ubuntu 16.04.2编译环境 arm-linux3.4.5 linux-2.6.22.6
在编译linux-2.6.22.6版本内核源码时,根据自己板子需要patch打补丁之后,进行默认配置,然后需要进行
myroot@myroot:~/system/kernel/linux-2.6.22.6$ make uImage
时,编译前部分正常,但是在最后出现
"mkimage" command not found - U-Boot images will not be built
mkimage的命令找不到,说明我们缺少了一些依赖包,所以我尝试安装依赖包如下
sudo apt-get install uboot-mkimage
但是又出现了如下错误
Package uboot-mkimage is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: u-boot-tools:i386 u-boot-tools E: Package 'uboot-mkimage' has no installation candidate
这个错误信息提示我们需要安装u-boot-tools依赖包,所以需要进行如下操作
sudo apt-get install u-boot-tools
安装完成后再次
sudo apt-get install uboot-mkimage
正常来说依赖包安装好了应该是可以了,但是这里依然提示和上面一样的错误信息,安装了u-boot-tools依赖包后,还是
提示
Package uboot-mkimage is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: u-boot-tools:i386 u-boot-tools E: Package 'uboot-mkimage' has no installation candidate试着找了很多解决方案都解决不了,最后发现uboot源码编译后,在其
u-boot-1.1.6/tools/目录下有mkimage可执行文件!所以进行了
sudo cp mkimage /bin/
然后再内核源码主Makefile所在的目录下再次
myroot@myroot:~/system/kernel/linux-2.6.22.6$ make uImage
提示
Image arch/arm/boot/uImage is ready
成功生成uImage文件!问题解决!
其中
sudo cp mkimage /bin/
也可以复制到/usr/bin/或者其他path中存在的目录(bin/)下,一般/bin/目录下的文件为和系统相关的工具,所以正式的话最好放在如上所述其他目录,虽然麻烦点,但是有助于养成良好习惯,不过现在练习阶段就没太大关系了~
这次问题的解决给了我一个新的思路,除了直接下载依赖包外,还可以直接将工具直接复制使用,这种在windows一定会想到的思路在linux这边反倒迟迟没有想到,所以思维还有很大的进步空间···
欢迎交流、讨论或者指正!共同进步!