如何在OpenWRT环境下做开发
1、搭建开发环境首先,我们需要一个为路由器定制的开发环境,具体可以参考我的另一篇日志:《搭建自己的OpenWrt开发环境》。
这里只做一个简单的补充,在执行make menuconfig后,会出现下图:其中,图中红框部分是我定制路由器的系统版本,大家可以根据不同的路由器进行不同的选择;绿框部分表示我们需要编译一个SDK开发环境(默认情况下,此项未勾选)。
编译过程中需要通过官网下载很多相关的软件包,所以必须保证能够顺利连上外网。
由于下载速度的限制,编译过程大概需要数小时。
编译结束后,所有的产品都会放在编译根目录下的bin/yourtarget/. 例如:我所编译的产物都放在./bin/brcm47xx/下,其中文件主要有几类:(1).bin/.trx 文件: 这些都是在我们所选的target-system的类别之下,针对不同路由器型号、版本编译的路由器固件。
这些不同路由器的型号和版本是openwrt预先设置好的,我们不需要更改。
至于.bin和.trx的区别,一种说法是,第一次刷路由器的时候,需要用.bin文件,如果需要再升级,则不能再使用.bin文件,而需要用.trx文件。
原因是,.bin是将路由器的相关配置信息和.trx封装在一起而生成的封包,也就是说是包含路由器版本信息的.trx。
在第一次刷固件的时候,我们需要提供这样的信息,而在后续升级时,则不再需要,用.trx文件即可。
(2)packages文件夹: 里面包含了我们在配置文件里设定的所有编译好的软件包。
默认情况下,会有默认选择的软件包。
(3)OpenWrt-SDK.**.tar.bz2: 这个也就是我们定制编译好的OpenWRT SDK环境。
我们将用这个来进行OpenWrt软件包的开发。
例如,我所编译好的SDK环境包为:/bin/brcm47xx/OpenWrt-SDK-brcm47xx-for-Linux-x86_64-gcc-4.3.3+cs_uClibc-0.9.30.1.tar.bz2可以从名称上看出,target system是brcm47xx,host system是Linux-x86_64,使用的编译工具以及库是4.3.3+cs_uClibc-0.9.30.1。
(4)md5sums 文件: 这个文件记录了所有我们编译好的文件的MD5值,来保证文件的完整性。
因为文件的不完整,很容易将路由器变成“砖头”。
需要主要的是,编译完成后,一定要将编译好的bin目录进行备份(如果里面东西对你很重要的话),因为在下次编译之前,执行make clean 会将bin目录下的所有文件给清除掉!!2、 更改原有packages在编译根目录下会有一个dl的目录,这个目录其实是“download”的简写,在编译前期,需要从网络下载的数据包都会放在这个目录下,这些软件包的一个特点就是,会自动安装在所编译的固件中,也就是我们make menuconfig的时候,为固件配置的一些软件包。
如果我们需要更改这些源码包,只需要将更改好的源码包打包成相同的名字放在这个目录下,然后开始编译即可。
编译时,会将软件包解压到build_dir目录下。
当然,你也可以自己在dl里面创建自己的软件包,然后更改相关的配置文件,让openwrt可以识别这个文件包。
由于我的项目更改的内容是底层的,需要跟固件一起安装。
所以,我使用的方法就是直接更改dl目录下软件包,然后重新进行固件编译。
感觉类似于Linux的内核编译。
反复编过十多次,没有任何问题。
3、 新建自己的packages对于自己新建的package,而这个package又不需要随固件一起安装,换句话说,就是可以当做一个可选软件包的话。
我们可以利用我们的SDK环境来单独编译,编译后会生成一个ipk的文件包。
然后利用 opkg install xxx.ipk 来安装这个软件。
下面具体说下,如何编译一个helloword的软件包。
(1)首先,编写helloworld程序编写helloworld.c/***************** Helloworld.c* The most simplistic C program ever written.* An epileptic monkey on crack could write this code.*****************/#include #include int main(void){ printf("Hell! O' world, why won't my code compile?\n\n"); return 0;}编写Makefile文件# build helloworld executable when user executes "make"helloworld: helloworld.o $(CC) $(LDFLAGS) helloworld.o -o helloworldhelloworld.o: helloworld.c $(CC) $(CFLAGS) -c helloworld.c# remove object files and executable when user executes "make clean"clean: rm *.o helloworld在这两个文件的目录下,执行make 应该可以生成helloworld的可执行文件。
执行helloworld后,能够打印出“Hell! O' world, why won't my code compile?”。
这一步,主要保证我们的源程序是可以正常编译的。
下面我们将其移植到OpenWRT上。
(2)将OpenWrt-SDK-brcm47xx-for-Linux-x86_64-gcc-4.3.3+cs_uClibc-0.9.30.1.tar.bz2解压tar –xvf OpenWrt-SDK-brcm47xx-for-Linux-x86_64-gcc-4.3.3+cs_uClibc-0.9.30.1.tar.bz2(3)进入SDKcd OpenWrt-SDK-brcm47xx-for-Linux-x86_64-gcc-4.3.3+cs_uClibc-0.9.30.1可以看到里面的目录结构跟我们之前source的目录结构基本相同,所需要编译的软件包,需要放置在package目录下(4)在package目录下创建helloworld目录cd packagemkdir helloworldcd helloworld(5)创建src目录,拷贝 helloworld文件mkdir srccp /home/wrt/test/helloworld.c srccp /home/wrt/test/Makefile src(6)在helloworld目录下创建Makefile文件这个Makefile文件是...
电脑的压缩文件有什么用
展开全部 如果你要一次上传多个文件,可以用Winrar压缩成一个文件,不仅方便而且压缩以后原文件将缩小一些。
文件压缩,原本是在那个存储空间甚至需要以字节来计算的时代,为了节省文件所占用的空间而诞生的。
而随着网络的普及,为了节省文件在网络上传输的流量及时间,对文件进行压缩也几乎成为了必备的过程。
根据所使用的压缩算法的不同,压缩文件也被区分为不同的格式。
下面列表中的是所有的压缩文件格式,不过常用的并没有那么多,而在Windows系统上面常用的就更少了。
下面介绍一下压缩文件的所有格式:* .0 - Hacha Split存档* .000 - DoubleSpace压缩档* .001 - 7-Zip压缩Split档* .7z - 7-Zip压缩档* .ace -WinAce压缩档* .ain - AIN压缩存档* .alz - ALZip存档* .apz - Autoplay Media Studio Exported Project* .ar - Unix Static Library* .arc - FreeArc压缩存档* .ari - ARI压缩存档* .arj - ARJ压缩存档* .axx - AxCrypt加密档* .bh - BlakHole存档* .bhx - BinHex编码档* .boo - Booasm压缩存档* .bz - Bzip压缩档* .bza -* .bz2 - Bzip2压缩档* .bzip2 - Bzip2压缩存档* .c00 -WinAceSplit存档* .c01 -WinAceSplit存档分卷* .c02 -WinAceSplit存档分卷* .cab -* .car - CAR存档* .cbr - Comic Book RAR存档* .cbz - Comic Book ZIP存档* .cp9 - ChoicePoint Encrypted档* .cpgz - 压缩CPIO存档* .cpt - Compact Pro存档* .dar - DAR Disk存档* .dd - DiskDouber存档* .deb - Debian软件包* .dgc - DGCA存档* .dist - Mac OS X Distribution Script* .ecs - Sony Ericsson Phone备份档* .efw - Renamed Zip or Executable档* .f - Freeze压缩档* .fdp - MySafe加密数据* .gca - GCA存档* .gz - Gnu Zipped档* .gzi - Unix Gzip档* .gzip - Gnu Zipped档* .ha - HA压缩存档* .hbc - HyperBac压缩存档* .hbc2 - HyperBac压缩存档* .hbe - HyperBac压缩加密存档* .hki - WinHKI存档* .hki1 - WinHKI HKI1存档* .hki2 - WinHKI HKI2存档* .hki3 - WinHKI HKI3存档* .hpk - HPack压缩存档* .hyp- HYPER压缩存档* .ice - ICE存档* .imp - Winimp压缩存档* .ipg - iPod游戏档* .ipk - Itsy包* .ish - ISH压缩存档* .j - JAR存档* .jar - JAR存档* .jgz - Gzipped Javascript档* .jic - Java Icon档* .kgb - KGB存档*.kz -快压存档* .lbr - LU Library存档* .lha - LHARC压缩存档* .lnx - Commodore 64 Lynx存档* .lqr - SQ压缩LBR存档* .lzh - LZH压缩档* .lzm - Slax Module* .lzma - LZMA压缩档* .lzo - LZO压缩档* .lzx - Amiga LZX压缩档* .md - MDCD压缩存档* .mint - Linux Mint安装程序档* .mou - Winmount压缩档* .mpkg - Meta包* .mzp - MAXScript Zip包* .nz - nanozip压缩档* .p7m - Digitally Encrypted Message* .package - Linux Autopackage档* .pae - PowerArchiver加密存档* .pak- PAK (Packed)档* .paq6 - PAQ6数据存档* .paq7 - PAQ7数据存档* .paq8 - PAQ8数据存档* .par - Parchive Index档* .par2 - Parchive 2 Index档* .pbi - PC BSD安装程序包* .pcv - Mozilla Profile备份* .pea - PEA存档* .pf - Private档* .pim - PIM存档* .pit - PackIt压缩存档* .piz - Zipped档* .pkg - Mac OS X安装程序包* .pup - PlayStation 3 Update档* .pup - Puppy Linux DotPup安装程序包* .puz - Packed Publisher档* .pwa - Password Agent档* .qda - Quadruple D存档* .r00 - WinRAR压缩存档* .r01 - WinRAR Split存档分卷1* .r02 - WinRAR Split存档分卷2* .r03 - WinRAR Split存档分卷3* .rar - WinRAR压缩存档* .rk - WinRK存档* .rnc - RNC ProPack存档* .rpm - Red Hat Package Manager档* .rte - RTE编码档* .rz - Rzip压缩档* .rzs - Red Zion Security档* .s00 - ZipSplitter分卷1存档* .s01 - ZipSplitter分卷2存档* .s02 - ZipSplitter分卷3存档* .s7z - Mac OS X 7-Zip档* .sar - Service存档* .sdn - Shareware Distributors Network档* .sea - Self-Extracting存档* .sfs- SquashFS存档* .sfx - Windows自解压存档* .sh - Unix Shell存档* .shar - Unix Shar存档* .shk - ShrinkIt存档* .shr - Unix Shell存档* .sit - Stuffit存档* .sitx - Stuffit X存档* .spt - TM File Packer压缩存档* .sqx - SQX存档* .sqz - Squeezed Video档* .tar - Consolidated Unix档* .tbz2 - Tar BZip 2压缩档* .tgz - Gzipped Tar档* .tlz - Tar LZMA压缩档* .uc2 - UltraCompressor 2存档* .uha -UHarc压缩存档* .uue - UUEncoded档* .vsi- Visual Studio Content安装程序档* .wad - Compressed游戏数据* .war - Java Web存档* .wot - Web Of Trust档* .xef -WinAce加密档* .xez - eManager Template包* .xpi - Mozilla安装程序包* .xx - XXEncoded档* .xxe - XXEncoded档* .y - Amiga Yabba压缩档* .yz - YAC压缩档* .z - Unix压缩档* .zap - FileWrangler存档* .zfsendtotarget -压缩档夹* .zip - Zipped档* .zipx- Winzip压缩档* .zix - WinZix压缩档* .zoo - Zoo压缩档* .zz - Zzip压缩存档*.exe - 自解压格式
win 10系统怎么激活
展开全部 方法1:使用KMS方式激活1.Windows 10安装完毕后,首先以管理员身份打开CMD命令行窗口。
专业版用户请依次输入:slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GXslmgr /skms kms.xspace.inslmgr /ato2.企业版用户请依次输入:slmgr /ipk NPPR9-FWDCX-D2C8J-H872K-2YT43slmgr /skms kms.xspace.inslmgr /ato方法2:使用激活工具激活1、下载最新最小马KMS10 Win10激活工具;2、下载后运行并点击“一键永久激活Windows和Office”;...
如何在OpenWRT环境下做开发
展开全部用激活工具就可以了暴风激活工具使用方法1、下载解压好软件包,然后启动软件,软件会自动检测你的系统。
2、然后点击“一键永久激活windows和office”。
3、激活完成后会提示你需要重启电脑,然后点击“OK”即可。
4、重启电脑后,打开软件,你会发现“计算机已永久激活”,系统激活成功。
暴风激活工具:http://www.xue51.com/soft/1476.html...
Openwrt ipv6 怎么设置
展开全部 在OPWNERT里面安装 6relayd插件就行了。
教程地址 http://www.geektu.com/post/2013-09-02-openwrt-pei-zhi-ipv6-chuan-tou 说明 本文所述方法只用于原生支持 IPv6 接入的网络环境(典型例子如教育网)。
本文用来解决这一问题:本来我的网络环境是支持 IPv6 的,但是接入到 OpenWrt 路由器后,我的设备就没法使用 IPv6 了;怎么让路由器下的设备也能用上原生的 IPv6 呢? 完成以下操作约耗时 10 分钟。
方案 使用 6relayd 这个软件包。
介绍(link): 一、安装 6relayd。
在 OpenWrt 12.09(Attitude Adjustment)中,官方源默认不提供 6relayd。
解决办法有两个: 自己编译带有 6relayd 的固件(或 ipk 包); 如果你的路由器是 ar71xx 架构(比如 TP-Link WR703N、NETGEAR WNDRMAC),可以使用 我编译好的 ipk 包。
二、配置 6relayd。
编辑 /etc/config/6relayd,加入一组配置项: config relay option network 'wan lan' # note the order option rd 'relay' option dhcpv6 'relay' option ndp 'relay' 然后 /etc/init.d/6relayd start 开启 6relayd 服务即可。
现在连接至 OpenWrt 的设备可以获得 IPv6 地址了: 连接至 OpenWrt 的设备可以获得 IPv6 地址了
如何在微软Windows平台上打造Linux环境
如果openwrt官方有支持的软件包,那么用package安装最方便。
如果是自己写的软件,不想配置成package的哪个格式,自己直接用交叉编译器编译出来,丢到openwrt系统上直接执行就行了。
其实package系统只是一个统一管理的方式,其实质还是对源代码打补丁,然后进行编译生成对应的软件包的。
转载请注明出处51数据库 » lede ipk软件包下载