有没有办法找到特定 Raspberry Pi 内核的确切源代码树
Is there a way to find out the exact source tree for specific Raspberry Pi kernel
我正在尝试在我的树莓派上编译一个内核模块,但在尝试加载已编译的模块时我一直收到 'disagrees about version of symbol module_layout'。
我想避免编译整个内核,所以我正在做的是在这里使用 Raspberry pi 基金会制作的 img (http://downloads.raspberrypi.org/raspbian_latest), then trying to install the kernel source from https://github.com/raspberrypi/linux and the Module.symvers from https://github.com/raspberrypi/firmware/blob/master/extra/Module.symvers
我认为问题是我没有找到内核源代码和 Module.symvers 的组合来匹配上一个 RPi 图像上的内容。我希望 github 回购被标记,但它没有。
有没有办法知道 branch/commit 用于为 Rpi 版本创建最新的 raspbian?
原来是多看了几个论坛,终于找到答案了。这是:
- 找出用于在 Rpi 上创建映像的固件提交 运行:
zgrep "* firmware as of" /usr/share/doc/raspberrypi-bootloader/changelog.Debian.gz | head -1 | awk '{ print }'
- 列表项
通过查看 https://github.com/raspberrypi/firmware/blob/firmware_commit 的内容找出用于创建固件的 linux 源提交/extra/git_hash
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
之后你应该可以编译你的模块了。
我正在尝试在我的树莓派上编译一个内核模块,但在尝试加载已编译的模块时我一直收到 'disagrees about version of symbol module_layout'。
我想避免编译整个内核,所以我正在做的是在这里使用 Raspberry pi 基金会制作的 img (http://downloads.raspberrypi.org/raspbian_latest), then trying to install the kernel source from https://github.com/raspberrypi/linux and the Module.symvers from https://github.com/raspberrypi/firmware/blob/master/extra/Module.symvers
我认为问题是我没有找到内核源代码和 Module.symvers 的组合来匹配上一个 RPi 图像上的内容。我希望 github 回购被标记,但它没有。
有没有办法知道 branch/commit 用于为 Rpi 版本创建最新的 raspbian?
原来是多看了几个论坛,终于找到答案了。这是:
- 找出用于在 Rpi 上创建映像的固件提交 运行:
zgrep "* firmware as of" /usr/share/doc/raspberrypi-bootloader/changelog.Debian.gz | head -1 | awk '{ print }'
- 列表项
通过查看 https://github.com/raspberrypi/firmware/blob/firmware_commit 的内容找出用于创建固件的 linux 源提交/extra/git_hash
3. 在 raspberry pi:
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
之后你应该可以编译你的模块了。