1、安装软件包时报错
sudo apt-get install make libc6:i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev ncurses-term libncursesw5-dev g++ u-boot-tools:i386 texinfo texlive gawk libssl-dev openssl bc
报错:
E:u-boot-tools:i386无法定位软件包
解决:软件和更新 中添加两个源,如图:
deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
deb http://packages.microsoft.com/repos/code stable main
接着更新软件源,如图,提示没有公钥:
根据提示添加公钥,再更新软件源,再安装,如图:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>
sudo apt-get update
sudo apt install u-boot-tools:i386
2、创建/etc/ld.so.preload 文件 报错
echo "" > /etc/ld.so.preload
报错:
bash: /etc/ld.so.preload: 权限不够
原因:echo指令属于root用户权限,加个sudo并不能获得root全部权限,只能获得部分
解决:直接使用root用户,具体指令为:
sudo sh -c 'echo "" > /etc/ld.so.preload'
注意:echo整条指令在单引号里面
3、mtd-utils2.0.2 依赖于 automake1.15.1,安装 automake1.15.1报错
sudo apt-get autoremove automake
提示:
Autoconf 2.65 or better is required.
解决:下载Autoconf 2.65或更高版本安装(手动安装):
tar xzf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure --prefix=/usr/local
make
sudo make install
export PATH=/usr/local/bin
又报错:
解决:先安装 M4,再安装autoconf ,然后安装automake
###安装m4
wget http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz
tar -xzvf m4-1.4.13.tar.gz
cd m4-1.4.13
./configure --prefix=/usr/local
make
sudo make install
cd ..
###安装autoconf
wget http://mirrors.kernel.org/gnu/autoconf/autoconf-2.65.tar.gz
tar -xzvf autoconf-2.65.tar.gz
cd autoconf-2.65
./configure --prefix=/usr/local
make
sudo make install
cd ..
###安装automake
wget http://mirrors.kernel.org/gnu/automake/automake-1.11.tar.gz
tar xzvf automake-1.11.tar.gz
cd automake-1.11
./configure --prefix=/usr/local
make
sudo make install
cd ..
4、编译SDK 报错
cd osdrv
make OSDRV_CROSS=arm-himix100-linux clean
make OSDRV_CROSS=arm-himix100-linux all
报错
bison:未找到命令
解决:下载bison -- http://ftp.gnu.org/gnu/bison/ 手动安装
###安装bison
tar zxvf bison-3.3.1.tar.gz
cd bison-3.3.1/
./configure --prefix=/usr/local
make
sudo make install
cd ..
安装 Bison
准备编译 Bison:
./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.0.4
编译软件包:
make
用以下命令测试结果(大约 0.5 SBU):
make check
安装软件包:
make install
5、编译SDK报错
fseterr.c:78:3: error #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."
解决:下载gzip-1.10.tar.gz并存放到osdrv/tools/pc/hi_gzip目录中,然后修改名称为gzip-1.10.tgz,最后将Makefile中所有“gzip-1.8”修改为“gzip-1.10”
6、编译SDK报错
示例一:
mksquashfs.c: In function ‘create_inode’:`
`mksquashfs.c:987:24: error: called object ‘major’ is not a function or function pointer`
`987 | unsigned int major = major(buf->st_rdev);`
`| ^~~~~`
`mksquashfs.c:987:16: note: declared here`
`987 | unsigned int major = major(buf->st_rdev);`
`| ^~~~~`
`mksquashfs.c:988:24: error: called object ‘minor’ is not a function or function pointer`
`988 | unsigned int minor = minor(buf->st_rdev);`
`| ^~~~~`
`mksquashfs.c:988:16: note: declared here`
`988 | unsigned int minor = minor(buf->st_rdev);`
`| ^~~~~`
`mksquashfs.c:1011:24: error: called object ‘major’ is not a function or function pointer`
`1011 | unsigned int major = major(buf->st_rdev);`
x `| ^~~~~`
`mksquashfs.c:1011:16: note: declared here`
`1011 | unsigned int ma