notro / rpi-build Goto Github PK
View Code? Open in Web Editor NEWDiscontinued. Easy kernel building for the Raspberry Pi
Discontinued. Easy kernel building for the Raspberry Pi
For some reasons when I try to install build twice I get:
cp: cannot stat `rpi-build-archive/*.elf': No such file or directory
touch /home/pietrushnic/src/rpi-bcm2835/workdir/install.target
Target 'install' done
before that error script rm -rf
some stuff:
+ rm -rf /boot/start_cd.elf /boot/start.elf /boot/start_x.elf
+ rm -rf /boot/bootcode.bin
+ cp 'rpi-build-archive/*.elf' /boot/
If user reboots it have to reflash SD card to recover from this problem.
I was able to narrow down the difference to fact that when running second time rpi-build
doesn't invoke transfer target, which final dependence is fetch. I don't know why fetch is not called. It looks like it is related with downloading build components.
Hi @notro,
I have two questions about rpi-build:
rpi-bcm2835
?Or maybe I should look into other tools. I have to back to those workflow, because of my current project.
Best Regards,
pietrushnic
It would be great for contributors to have ability to change parent repository (and maybe branch). This would give possibility of using experimental versions, branches with fixes and work in progress features.
This is nice to have.
Easy to workaround for this issue is checkout of remote repository in $HOME/rpi-build/bin
and $HOME/rpi-build/stdlib
Hi Notro,
I wanted to try your new rpi-build scripts und used the example https://github.com/notro/rpi-build/wiki#ipv6-kernel-built-on-ubuntu-1204. However I always get this error message:
/home/marco/rpi-build/bin/build:17: undefined method `require_relative' for main:Object (NoMethodError)
This is the full output:
marco@ubuntu:~$ rpi-build
Missing dependencies:
sudo apt-get --yes install rake
Install dependencies? [Y/n] Y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
ruby
Suggested packages:
ri
The following NEW packages will be installed:
rake ruby
0 upgraded, 2 newly installed, 0 to remove and 14 not upgraded.
Need to get 51.0 kB of archives.
After this operation, 240 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main ruby all 4.8 [5054 B]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise/main rake all 0.9.2.2-2 [46.0 kB]
Fetched 51.0 kB in 0s (84.2 kB/s)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Selecting previously unselected package ruby.
(Reading database ... 340732 files and directories currently installed.)
Unpacking ruby (from .../apt/archives/ruby_4.8_all.deb) ...
Selecting previously unselected package rake.
Unpacking rake (from .../rake_0.9.2.2-2_all.deb) ...
Processing triggers for man-db ...
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Setting up ruby (4.8) ...
Setting up rake (0.9.2.2-2) ...
Installing rpi-build to /home/marco/rpi-build:
rpi-build
remote: Counting objects: 507, done.
remote: Total 507 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (507/507), 226.65 KiB | 239 KiB/s, done.
Resolving deltas: 100% (298/298), done.
stdlib
remote: Counting objects: 178, done.
remote: Total 178 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (178/178), 30.11 KiB, done.
Resolving deltas: 100% (105/105), done.
Done.
/home/marco/rpi-build/bin/build:17: undefined method `require_relative' for main:Object (NoMethodError)
marco@ubuntu:~$
There is no input validation on IP address:
[0:34:06] pietrushnic:tmp $ rpi-build use\[stdlib\] rpi_linux install SSHIP=192.168.1.255
Workdir: /home/pietrushnic/tmp/workdir
(in /home/pietrushnic/rpi-build/stdlib)
Release: rpi_linux
Package: rpi_linux_common
Package: issue106
Package: raspberrypi_tools
Package: raspberrypi_firmware
Package: vcboot
Package: raspberrypi_linux
cd /home/pietrushnic/tmp/workdir/out; tar -zcf /home/pietrushnic/tmp/workdir/archive.tar.gz *
Target 'archive' done
sshpass -e ssh -o LogLevel=quiet -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected] "rm -rf rpi-build-archive; mkdir rpi-build-archive"
cat /home/pietrushnic/tmp/workdir/archive.tar.gz | sshpass -e ssh -o LogLevel=quiet -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected] "cd rpi-build-archive; tar zxvf -"
Target 'transfer' done
sshpass -e ssh -o LogLevel=quiet -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected] "stat --printf=%Y /usr/bin/rpi-update"
Update rpi-update to ensure FW_REPOLOCAL support:
sshpass -e ssh -o LogLevel=quiet -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected] "sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update"
sshpass -e ssh -o LogLevel=quiet -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected] "sudo UPDATE_SELF=0 SKIP_BACKUP=1 SKIP_REPODELETE=0 SKIP_DOWNLOAD=1 FW_REPOLOCAL=rpi-build-archive rpi-update '2014-10-02 00:35:57 +0200' 1>&2"
Target 'install' done
Same situation for valid address but without working ssh service on target. This introduce confusion when you installed kernel on RPi and it breaks IP connection.
It would be great to use rpi-build
to test RPi upstream Github repo.
i built your bcm2835x branch and get errors when i try to boot the kernel.
first i copied the recent raspbian image(Kernel 3.10) to my sd card and then boot.scr, boot.scr.uimg to the boot partition of the sd card. additional i copied zImage and bcm2835-rpi-b.dtb to the boot partition, too.
output on booting:
U-Boot 2014.04-rc1-00120-g1674df6 (Feb 25 2014 - 19:26:23)
DRAM: 192 MiB
WARNING: Caches not enabled
MMC: bcm2835_sdhci: 0
Using default environment
In: serial
Out: lcd
Err: lcd
Hit any key to stop autoboot: 0
mmc0 is current device
** No partition table - mmc 0 **
when i try to run the commands in the boot.scr manually, i get following error:
Bad Linux ARM zImage magic!
Can you help me?
I'm currently using a Rakefile like this:
require 'mylib/my-kernel'
release :pi1 => :my_rpi_common do
end
release :pi2 => :my_rpi_common do
ENV['LINUX_DEFCONFIG'] = 'bcm2709_defconfig'
end
And then building like this:
rpi-build use[mylib] pi1 clean build
rpi-build use[mylib] pi2 clean build WORKDIR=workdir7
(Two separate installs are also required to produce a card with both kernels.)
This seems to work, but I'm sure it's doing some steps redundantly. Is it possible to streamline this into a single build that does both kernels? Or is there some better way to do this? (I couldn't find a way to change the default WORKDIR inside the Rakefile based on the release, which would have been nice.)
Maybe the wiki could be updated with a Pi2 example as well?
Hello,
I tried to build the builtin version of the modules via ./release.sh builtin, but sadly it does fail on one of the patches:
Applied patch arch/arm/mach-bcm2708/bcm2708.c cleanly.
=> cd /home/user/linux-rpi-3.10.y && git apply -v /home/user/notro/rpi-build/patches/builtin/021-mach-bcm2708-Reserve-64-IRQs-for-peripherals.patch
Checking patch arch/arm/mach-bcm2708/include/mach/irqs.h...
error: while searching for:
error: patch failed: arch/arm/mach-bcm2708/include/mach/irqs.h:192
error: arch/arm/mach-bcm2708/include/mach/irqs.h: patch does not apply
Traceback (most recent call last):
File "./task.py", line 22, in
tasks(arg)
File "/home/rzsnm/notro/rpi-build/_common.py", line 24, in call
func()
File "/home/rzsnm/notro/rpi-build/master.py", line 51, in task_init
self.linux.repo.apply(patch)
File "/home/rzsnm/notro/rpi-build/_common.py", line 177, in apply
sh("cd %s && git apply -v %s" % (self.workdir, patch))
File "/home/rzsnm/notro/rpi-build/_common.py", line 518, in sh
subprocess.check_call(cmd, shell=True)
File "/usr/lib/python2.7/subprocess.py", line 511, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'cd /home/user/linux-rpi-3.10.y && git apply -v /home/user/notro/rpi-build/patches/builtin/021-mach-bcm2708-Reserve-64-IRQs-for-peripherals.patch' returned non-zero exit status 1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.