- 浏览: 1446855 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (691)
- linux (207)
- shell (33)
- java (42)
- 其他 (22)
- javascript (33)
- cloud (16)
- python (33)
- c (48)
- sql (12)
- 工具 (6)
- 缓存 (16)
- ubuntu (7)
- perl (3)
- lua (2)
- 超级有用 (2)
- 服务器 (2)
- mac (22)
- nginx (34)
- php (2)
- 内核 (2)
- gdb (13)
- ICTCLAS (2)
- mac android (0)
- unix (1)
- android (1)
- vim (1)
- epoll (1)
- ios (21)
- mysql (3)
- systemtap (1)
- 算法 (2)
- 汇编 (2)
- arm (3)
- 我的数据结构 (8)
- websocket (12)
- hadoop (5)
- thrift (2)
- hbase (1)
- graphviz (1)
- redis (1)
- raspberry (2)
- qemu (31)
- opencv (4)
- socket (1)
- opengl (1)
- ibeacons (1)
- emacs (6)
- openstack (24)
- docker (1)
- webrtc (11)
- angularjs (2)
- neutron (23)
- jslinux (18)
- 网络 (13)
- tap (9)
- tensorflow (8)
- nlu (4)
- asm.js (5)
- sip (3)
- xl2tp (5)
- conda (1)
- emscripten (6)
- ffmpeg (10)
- srt (1)
- wasm (5)
- bert (3)
- kaldi (4)
- 知识图谱 (1)
最新评论
-
wahahachuang8:
我喜欢代码简洁易读,服务稳定的推送服务,前段时间研究了一下go ...
websocket的helloworld -
q114687576:
http://www.blue-zero.com/WebSoc ...
websocket的helloworld -
zhaoyanzimm:
感谢您的分享,给我提供了很大的帮助,在使用过程中发现了一个问题 ...
nginx的helloworld模块的helloworld -
haoningabc:
leebyte 写道太NB了,期待早日用上Killinux!么 ...
qemu+emacs+gdb调试内核 -
leebyte:
太NB了,期待早日用上Killinux!
qemu+emacs+gdb调试内核
##############################################################################
制作镜像文件
buildroot-2016.08.1.tar.gz
得到buildroot/haoning/images/rootfs.ext2
编译出来的最小大概2.1M
vim root/sbin/init
运行
启动之后
/sbin/mdev -s
会在/dev下建好设备
包括jsclipboard
sync,保存到磁盘,这些dev是jslinux启动的时候用的
ctl+a x 退出qemu
ctl+a c是切换到monitor
重新mount修改rootfs.ext2里面的 /sbin/init
注释
#/sbin/mdev -s
替换jslinux-network的硬盘
由于只有2M左右,所以修改jslinux.js
进入jslinux
ip link可用
如果嫌硬盘不够大,还想装点其他东西
把rootfs.ext2 里的文件cp到image.raw里面,jslinux和qemu可用
得到一个比较大有空间的image镜像image.raw给qemu用
如果使用gcc需要注意内核的版本
FATAL kernel too old
http://blog.csdn.net/yimiyangguang1314/article/details/6095740
★★★★★★★★★★★★★
交叉编译tcc
buildroot的i686-linux-gcc 在buildroot-2016.08.1/haoning/host
host目录下有完整的交叉编译用的gcc等,但是比较大,我们用tcc编译
export PATH=/opt/jslinux/buildroot/buildroot-2016.08.1/haoning/host/usr/bin
这下面有i686-linux-gcc
测试:
cd tcc-0.9.25
注意这里CC要放在前面
make
make install
image.raw 挂载在image下,把tcc写入了这个镜像
cp -r /opt/jslinux/buildroot/buildroot-2016.08.1/haoning/host/usr/i686-buildroot-linux-uclibc/sysroot/* /opt/jslinux/buildroot/buildroot-2016.08.1/haoning/images/image/
qemu执行
进入系统tcc
之后保存系统
sync
sync
vi /sbin/init
注释掉
#/sbin/mdev -s
替换/var/www/jslinux-network/root.bin
测试jslinux
最后报错:
/var # tcc sniffer.c -o sniffer
In file included from sniffer.c:3:
In file included from /usr/include/netinet/in.h:24:
In file included from /usr/include/sys/socket.h:27:
In file included from /usr/include/sys/uio.h:23:
/usr/include/sys/types.h:146: include file 'stddef.h' not found
可能是没选c++
编译一次下周一再看
制作镜像文件
buildroot-2016.08.1.tar.gz
make O=haoning menuconfig Target options ---> Target Architecture Variant (i686) ---> 因为我的当前系统uname是i686的,为了兼容指令集 Filesystem images ---> [*] ext2/3/4 root filesystem 为了生成rootfs.ext2 Target packages ---> Development tools ---> [*] make 生成命令行的make make O=haoning -j16
得到buildroot/haoning/images/rootfs.ext2
编译出来的最小大概2.1M
mount -o loop rootfs.ext2 root mv root/sbin/init root/sbin/init
vim root/sbin/init
#!/bin/sh echo "JSLinux started, initializing..." export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin export HOME=/root export TERM=vt100 mount -n -t proc /proc /proc mount -n -t sysfs /sys /sys mount -n -t devpts devpts /dev/pts mount -n -t tmpfs /tmp /tmp mount -n -t tmpfs /var /var ifconfig lo 127.0.0.1 #/sbin/mdev -s mkdir -p "/tmp/root" while /bin/true; do echo "haoning buildroot-2016.08.1 this is before sh ttyS0.........." setsid sh -c 'exec sh </dev/ttyS0 >/dev/ttyS0 2>&1 && echo "hahah"' echo "this is not over ...." done ~
运行
qemu-system-i386 -kernel /opt/jslinux/kernel/linux-2.6.20/arch/i386/boot/bzImage -drive file=rootfs.ext2.onlyext2,if=ide,cache=none -append "console=ttyS0 root=/dev/hda rw init=/sbin/init notsc=1" -boot order=dc,menu=on -net nic,vlan=0,macaddr=52:54:00:12:34:22,model=e1000,addr=08 -net tap,ifname=tap1,script=./if-up,downscript=./if-down -nographic
启动之后
/sbin/mdev -s
会在/dev下建好设备
包括jsclipboard
sync,保存到磁盘,这些dev是jslinux启动的时候用的
ctl+a x 退出qemu
ctl+a c是切换到monitor
重新mount修改rootfs.ext2里面的 /sbin/init
注释
#/sbin/mdev -s
替换jslinux-network的硬盘
cp rootfs.ext2.onlyext2 /var/www/jslinux-network/root.bin
由于只有2M左右,所以修改jslinux.js
/* Preload blocks so that the boot time does not depend on the * time to load the required disk data (optional) */ // block_list = [ 0, 7, 3, 643, 720, 256, 336, 644, 781, 387, 464, 475, 131, 589, 468, 472, 474, 776, 777, 778, 779, 465, 466, 473, 467, 469, 470, 512, 59 2, 471, 691, 697, 708, 792, 775, 769 ]; block_list = [ 0, 7, 3 ];
进入jslinux
ip link可用
如果嫌硬盘不够大,还想装点其他东西
cd /opt/jslinux/buildroot/buildroot-2016.08.1/haoning/images qemu-img create -f raw image.raw 20M mkfs.ext2 image.raw mkdir image mount -o loop image.raw image mount -o loop rootfs.ext2 root cp -r root/* image/
把rootfs.ext2 里的文件cp到image.raw里面,jslinux和qemu可用
得到一个比较大有空间的image镜像image.raw给qemu用
如果使用gcc需要注意内核的版本
FATAL kernel too old
http://blog.csdn.net/yimiyangguang1314/article/details/6095740
★★★★★★★★★★★★★
交叉编译tcc
buildroot的i686-linux-gcc 在buildroot-2016.08.1/haoning/host
host目录下有完整的交叉编译用的gcc等,但是比较大,我们用tcc编译
export PATH=/opt/jslinux/buildroot/buildroot-2016.08.1/haoning/host/usr/bin
这下面有i686-linux-gcc
测试:
[root@centos32 tcc-0.9.25]# i686-linux-gcc --version i686-linux-gcc.br_real (Buildroot 2016.08.1) 4.9.4 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
export CC=i686-linux-gcc
cd tcc-0.9.25
注意这里CC要放在前面
CC=i686-linux-gcc ./configure --prefix=/opt/jslinux/buildroot/buildroot-2016.08.1/haoning/images/image/usr --cc=i686-linux-gcc
make
make install
image.raw 挂载在image下,把tcc写入了这个镜像
cp -r /opt/jslinux/buildroot/buildroot-2016.08.1/haoning/host/usr/i686-buildroot-linux-uclibc/sysroot/* /opt/jslinux/buildroot/buildroot-2016.08.1/haoning/images/image/
qemu执行
qemu-system-i386 -kernel /opt/jslinux/kernel/linux-2.6.20/arch/i386/boot/bzImage -drive file=image.raw,if=ide,cache=none -append "console=ttyS0 root=/dev/hda rw init=/sbin/init notsc=1" -boot order=dc,menu=on -net nic,vlan=0,macaddr=52:54:00:12:34:22,model=e1000,addr=08 -net tap,ifname=tap1,script=./if-up,downscript=./if-down -nographic
进入系统tcc
之后保存系统
sync
sync
vi /sbin/init
注释掉
#/sbin/mdev -s
替换/var/www/jslinux-network/root.bin
测试jslinux
最后报错:
/var # tcc sniffer.c -o sniffer
In file included from sniffer.c:3:
In file included from /usr/include/netinet/in.h:24:
In file included from /usr/include/sys/socket.h:27:
In file included from /usr/include/sys/uio.h:23:
/usr/include/sys/types.h:146: include file 'stddef.h' not found
可能是没选c++
编译一次下周一再看
发表评论
-
sdl笔记
2019-01-31 17:19 691sdl教程教程 https://github.com/Twin ... -
tinyemu
2019-01-24 17:59 1402参考https://bellard.org/jslinux/t ... -
建立tap设备的c的代码
2019-01-08 19:09 440tapper.c #include <stdio.h& ... -
jslinux总结帖
2019-01-04 21:33 1023注意个问题: chrome不要用两个tab页,否则ping不通 ... -
emscripten asm.js的helloworld
2018-03-01 20:15 1070mac下安装: brew install SDL2 SDL2_ ... -
nginx代理wss和https
2018-02-27 15:34 3862nginx启用ssl yum install openssl ... -
jslinux-deobfuscated-network
2017-02-13 22:37 617基础知识 查看网络包 tcpdump -i eth0 -e ... -
jslinux带网络功能的内核
2016-11-15 15:35 753想重新编译jslinux-network 的内核,其实就是比f ... -
nginx rewrite替代apache rewrite
2016-10-18 20:30 788清理chrome的缓存 chrome://appcache-i ... -
qemu用tap方式启动vm的网络试验(ip route)
2016-09-14 11:29 2678ip route add 192.168.8.0/24 via ... -
qemu的不断网动态迁移的试验
2016-06-28 16:16 918需求: 目前有两台服务器 192.168.139.117 19 ... -
kvm的nested嵌套
2016-06-27 18:25 1279关键点是 modprobe kvm_intel nested= ... -
qemu的动态迁移的试验
2016-06-25 21:48 13811.安装qemu-2.5.1.tar 解决 ... -
libvirt建立快照和基本使用
2016-06-25 15:51 1549如果使用qemu的快照方式 在monitor中操作 (qe ... -
socket的方式使用qemu建立虚拟机
2016-06-24 17:54 1806qemu的-net参数 -net nic 必须有,基本配置mo ... -
tap的方式使用qemu建立虚拟机NAT网络
2016-06-23 18:03 9509基本概念: vm:虚拟机 ... -
qemu建立基本的虚拟机
2016-06-23 17:04 1918使用qemu建立虚拟机 1.需要内核文件 bzImage ... -
qemu用nat的方式使用tap建立虚拟机
2016-06-23 16:15 11普通桥接参考 http://haoningabc.iteye. ... -
tap的方式使用qemu建立虚拟机桥接网络
2016-06-22 20:53 7621需求:建立一个虚拟机,使网络和内网一样,当一台普通接入内网的服 ... -
websocket和tap使用select关联
2016-06-14 22:01 717c语言的socket基础http://haoningabc.i ...
相关推荐
使用buildroot-2017.08编译的适用于lichee-nano的rootfs,登录名:root,无密码,直接回车即可
buildroot构建rootfs和app,官方源码包
嵌入式linux 交叉编译器
正如您在示例目录中看到的,Dockerfile 用于使用配置文件创建 buildroot。 Makefile 为您提供主要的工作流程任务。 config任务只是在 rootbuild 中运行make nconfig并拉出.config文件。 然后build任务从 Dockerfile...
本文档用于记录使用 Busybox 构建 arm linux 最小根文件系统的过程, 方便日后查阅、参考。
使用RK3288的buildroot编译的文件系统,qt版本5.15.2.支持eglfs和wayland显示。qt支持3D显示,scene3d是qt示例中编译出来的3D显示的demo。
Buildroot使用交叉编译工具,能简单自动化地为嵌入式系统构建完整的Linux系统。 为了实现这一点,Buildroot能够生成交叉编译工具链、根文件系统、Linux内核映像和引导加载程序。Buildroot可以独立构建这些选项的任意...
Buildroot是Linux平台上一...你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。
Linux中Root Filesystem(根文件系统)是必不可少的,常用的是BusyBox,本节就介绍一下使用BusyBox制作Linux根文件系统rootfs,主要参考xilinx wiki上Zynq Root FileSystem Creation方法:...
文档描述了如何采用buildroot生成嵌入式linux的文件系统
Buildroot是Linux平台上一...你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。
嵌入式环境ssh
此buildroot使用手册为英文原版,但是仔细读还是能读懂一些的
Buildroot中文用户手册
使用buildroot-2021.02.4编译的适用于lichee-nano的rootfs,登录名:root,无密码,直接回车即可
buildroot manual
gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu
本文基于xilinx的zynq 7z045芯片使用buildroot工具制作根文件系统,并添加网络工具:dropbear、vsftpd、tcpdump、iperf3等,移植mkfs.ext4工具,并添加交叉编译器lib库到根文件系统。
本文档主要介绍buildroot的开发环境及设定,让使用者可以快速了解buildroot ,并建立专属的linux system
基于xilinx的zynqmp系列的芯片,搭建linux的根文件系统,使用buildroot方式进行编程,并移植mkfs.ext4工具、dropbear工具、vsftpd工具和tcpdump工具等。