- 浏览: 1482606 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 740sdl教程教程 https://github.com/Twin ... -
tinyemu
2019-01-24 17:59 1441参考https://bellard.org/jslinux/t ... -
建立tap设备的c的代码
2019-01-08 19:09 480tapper.c #include <stdio.h& ... -
jslinux总结帖
2019-01-04 21:33 1160注意个问题: chrome不要用两个tab页,否则ping不通 ... -
emscripten asm.js的helloworld
2018-03-01 20:15 1117mac下安装: brew install SDL2 SDL2_ ... -
nginx代理wss和https
2018-02-27 15:34 3938nginx启用ssl yum install openssl ... -
jslinux-deobfuscated-network
2017-02-13 22:37 733基础知识 查看网络包 tcpdump -i eth0 -e ... -
jslinux带网络功能的内核
2016-11-15 15:35 822想重新编译jslinux-network 的内核,其实就是比f ... -
nginx rewrite替代apache rewrite
2016-10-18 20:30 843清理chrome的缓存 chrome://appcache-i ... -
qemu用tap方式启动vm的网络试验(ip route)
2016-09-14 11:29 2831ip route add 192.168.8.0/24 via ... -
qemu的不断网动态迁移的试验
2016-06-28 16:16 955需求: 目前有两台服务器 192.168.139.117 19 ... -
kvm的nested嵌套
2016-06-27 18:25 1336关键点是 modprobe kvm_intel nested= ... -
qemu的动态迁移的试验
2016-06-25 21:48 14311.安装qemu-2.5.1.tar 解决 ... -
libvirt建立快照和基本使用
2016-06-25 15:51 1644如果使用qemu的快照方式 在monitor中操作 (qe ... -
socket的方式使用qemu建立虚拟机
2016-06-24 17:54 1931qemu的-net参数 -net nic 必须有,基本配置mo ... -
tap的方式使用qemu建立虚拟机NAT网络
2016-06-23 18:03 9901基本概念: vm:虚拟机 ... -
qemu建立基本的虚拟机
2016-06-23 17:04 1991使用qemu建立虚拟机 1.需要内核文件 bzImage ... -
qemu用nat的方式使用tap建立虚拟机
2016-06-23 16:15 11普通桥接参考 http://haoningabc.iteye. ... -
tap的方式使用qemu建立虚拟机桥接网络
2016-06-22 20:53 7883需求:建立一个虚拟机,使网络和内网一样,当一台普通接入内网的服 ... -
websocket和tap使用select关联
2016-06-14 22:01 753c语言的socket基础http://haoningabc.i ...
相关推荐
Buildroot 是一个开源项目,它为嵌入式系统提供了一种简单、高效的方式来构建自定义的 Linux root 文件系统。通过 Buildroot,你可以选择要包含在根文件系统中的软件包,然后它会自动下载源代码、配置、编译并打包成...
使用buildroot-2017.08编译的适用于lichee-nano的rootfs,登录名:root,无密码,直接回车即可
在构建基于ZynqMP芯片的Linux根文件系统时,我们通常使用Buildroot工具来简化这一过程。Buildroot是一个开源项目,它允许用户自定义构建一个嵌入式系统的最小文件系统,包括内核、库、应用程序和服务。在这个场景中...
该项目为基于Buildroot的Phytium Linux系统交叉编译源码,包含12692个文件,其中包含3062个Makefile文件、2913个hash文件、2896个input文件、1848个patch文件,并涉及Python、Shell、C、HTML、Java、CSS、JavaScript...
嵌入式linux 交叉编译器
基于ZYNQ的根文件系统制作涉及到多个步骤和技术,这里我们将详细探讨如何使用Buildroot工具来创建一个定制化的根文件系统,特别是对于Xilinx的Zynq 7z045芯片。 首先,Buildroot是一个开源的构建系统,它主要用于...
正如您在示例目录中看到的,Dockerfile 用于使用配置文件创建 buildroot。 Makefile 为您提供主要的工作流程任务。 config任务只是在 rootbuild 中运行make nconfig并拉出.config文件。 然后build任务从 Dockerfile...
标题中的“buildroot开发板搭建ssh远程登录服务”是指在基于Buildroot构建的嵌入式Linux系统中,通过OpenSSH服务器实现远程登录控制台的功能。嵌入式环境下的SSH允许开发者在没有物理访问设备的情况下,通过网络进行...
本文档详细记录了使用Busybox工具来构建适用于ARM架构Linux系统的最小根文件系统的步骤。 首先,文档介绍了编写本文档的目的是为了记录构建过程,便于日后查阅和参考。接着,文档进入了构建根文件系统的主要内容,...
Buildroot 是一个强大的工具,主要用于构建嵌入式Linux系统,尤其适合那些资源有限的设备。它简化了构建过程,使得开发者能够快速地编译出一个完整的...这样,你就可以开始使用Buildroot构建定制的嵌入式Linux系统了。
使用RK3288的buildroot编译的文件系统,qt版本5.15.2.支持eglfs和wayland显示。qt支持3D显示,scene3d是qt示例中编译出来的3D显示的demo。
**Buildroot**是一个自动化构建嵌入式Linux系统的工具。它可以帮助开发者快速构建一个完整的Linux发行版,包括交叉编译工具链、Linux内核、文件系统以及必要的库和应用程序。通过高度可配置的方式,Buildroot满足了...
Buildroot是一个用于创建嵌入式Linux系统的工具,它能够简化交叉编译、生成根文件系统、编译内核镜像以及编译引导加载程序的过程。Buildroot支持数千种软件包,如Gtk3、QT5、GStreamer和Webkit等,提供了一种高效、...
通过阅读“buildroot学习文档”中的内容,你可以更深入地了解如何使用Buildroot来构建嵌入式Linux系统,包括配置技巧、问题排查以及最佳实践。这个压缩包对于初学者和经验丰富的开发者来说都是宝贵的资源,可以帮助...
通过以上步骤,我们成功地使用 Buildroot 为 ZYNQ7010 平台构建了一个完整的 ramdisk 文件系统。这一过程不仅展示了 Buildroot 的强大功能,还让我们深入了解了构建嵌入式 Linux 文件系统的整个流程。
使用Buildroot,开发者可以方便地为特定硬件平台配置、编译和安装软件包,从而搭建出定制的系统镜像。本手册详细介绍了Buildroot的安装、配置、使用方法和常见问题的解决。 ### Getting Started - **About ...
在Linux系统中,根文件系统(Root Filesystem,简称rootfs)扮演着至关重要的角色,它是操作系统启动时的第一个文件系统,包含系统运行所需的基本程序和配置。在ZYNQ FPGA平台上的嵌入式Linux系统中,构建根文件系统...
Buildroot作为一个嵌入式Linux系统构建工具,它的主要作用是为用户提供一个快速建立定制Linux系统的途径。与传统的系统构建方式相比,Buildroot能够简化Linux系统的编译和配置过程,使得开发者可以专注于应用开发而...
**Buildroot** 是一个轻量级的构建系统,它允许开发者为嵌入式设备生成最小化的、自包含的文件系统。它通过提供一个基于菜单的配置界面(menuconfig),使用户能够选择要包含在最终文件系统中的软件包,如Busybox、...
通过使用交叉编译技术,它可以为不同的目标架构生成必要的组件,包括但不限于交叉编译工具链、根文件系统、Linux内核映像以及引导加载程序。Buildroot的灵活性体现在它允许用户选择性地使用其提供的功能,比如可以...