我正在尝试在我的覆盆子上编译内核模块,并且在尝试加载已编译的模块时,我一直“不同意对symbol module_layout的版本。”
我想避免编译整个内核,所以我正在做的是使用Raspberry pi基础产生的img(http://downloads.raspberrypi.org/raspbian_latest),然后尝试从https://github.com/raspberrypi/linux安装内核源代码。和来自https://github.com/raspberrypi/firmware/blob/master/extra/Module.symvers
的Module.symvers我认为问题在于我没有使用内核源代码和Module.symvers的组合来匹配laster RPi图像上的内容。我希望github repo被贴上标签,但事实并非如此。
有没有办法知道用什么分支/提交为Rpi发布创建最新的raspbian?
答案 0 :(得分:1)
事实证明,在阅读了几个论坛后,我发现了一个答案。这是:
zgrep "* firmware as of" /usr/share/doc/raspberrypi-bootloader/changelog.Debian.gz | head -1 | awk '{ print $5 }'
通过查看 https://github.com/raspberrypi/firmware/blob/ firmware_commit / extra / git_hash 的内容,找出用于创建固件的linux源代码提交
3.在raspberry pi上安装Linux源代码:
cd /usr/src/ sudo wget https://github.com/raspberrypi/linux/archive/source_commit.tar.gz sudo gunzip source_commit.tar.gz sudo tar -xvf source_commit.tar sudo mv linux-source_commit linux sudo ln -s linux linux-headers-3.18.5+ (user your kernel version instead of 3.18.5+) sudo ln -s linux /lib/modules/3.18.5+/build
如果你想编译内核模块而不必编译整个内核,这有点无关但仍然有用:
cd /lib/modules/3.18.5+/build sudo make mrproper sudo sh -c 'zcat /proc/config.gz > .config' sudo wget https://github.com/raspberrypi/firmware/raw//extra/Module.symvers sudo make modules_prepare
在此之后你应该能够编译你的模块。