1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

A new OpenWRT based repository

Discussion in 'Tomato Firmware' started by ryzhov_al, Apr 4, 2012.

  1. ryzhov_al

    ryzhov_al Networkin' Nut Member

    Its not a secret that Optware toolchain (gcc 4.1.1 + uClibc 0.9.28) is too old for some kernel 2.6 features. We can't use posix_fallocate, epoll, inotify and some other features with Optware, so i decided to port OpenWRT repository to those users, who used Optware before.

    My repo build with OpenWRT Buildroot environment and wl500g.code.google.com toolchain (gcc 4.4.6 + uClibc 0.9.32). A volume of repo for now is about 1/3 оf original OpenWRT repo.

    Please, feel free to try and let me know about found bugs and odds.
     
  2. lancethepants

    lancethepants Network Guru Member

    The new repo is actually petty cool. It has some newer up to date stuff worth looking at.
     
  3. ryzhov_al

    ryzhov_al Networkin' Nut Member

    • last rtorrent 0.9.1\libtorrent 0.13.1. Optware's rtorrent 0.8.6 was built in 2009,
    • last DropBox API, i'm using it for a torrent download automation,
    • ncdc - a new DirectConnect client,
    • xupnpd - a DLNA server, showing you YouTube\IPTV on a "stupid" players or TVs.
    and so on.
     
  4. shibby20

    shibby20 Network Guru Member

    Are all those packages compiled with "/opt" prefix? Try install transmission from openwrt, run and you will see what i mean.
     
  5. ryzhov_al

    ryzhov_al Networkin' Nut Member

    Yes! All those packages uses only a /opt folder. Its a Optware replacement.

    My project is just a bunch of patches to last Openwrt trunk.
     
  6. shibby20

    shibby20 Network Guru Member

    well nice work :) I will test it. Thx
     
  7. rs232

    rs232 Network Guru Member

    can I make this working using cifs?
    I get some permission problems running the ./entware_install.sh script
    after I mounted opt like this:
    mount -o bind /cifs1/opt /opt
     
  8. ryzhov_al

    ryzhov_al Networkin' Nut Member

    Please, apply your log, my telepathic force is weaken.^)
     
  9. shibby20

    shibby20 Network Guru Member

    you cant use cifs to install optware. Filesystem has to be ext2/3 if you want install optware.
     
  10. rs232

    rs232 Network Guru Member

    This is part of the log, but shibby's answer makes sense to me.

    root@tomato:/cifs1# ./entware_install.sh >> /tmp/entware_install.log
    Connecting to wl500g-repo.googlecode.com (209.85.147.82:80)
    wget: can't open 'ipkg.conf': File exists
    Connecting to wl500g-repo.googlecode.com (209.85.147.82:80)
    wget: can't open 'ipkg.sh': File exists
    Connecting to wl500g-repo.googlecode.com (209.85.147.82:80)
    Packages 100% |***************************************************| 585k 00:00:00 ETA
    Connecting to wl500g-repo.googlecode.com (209.85.147.82:80)
    ldconfig_-104_entwar 100% |***************************************************| 138k --:--:-- ETA
    mv: can't rename '//opt/tmp/ldconfig/control/control': Permission denied
    rm: can't remove '//opt/tmp/ldconfig/control/control': Permission denied
    rm: can't remove '//opt/tmp/ldconfig/control': Directory not empty
    tar: can't remove old file ./opt/bin/ldconfig: Permission denied
    rm: can't remove '//opt/tmp/ldconfig/data/opt/bin/ldconfig': Permission denied
    rm: can't remove '//opt/tmp/ldconfig/data/opt/bin': Permission denied
    rm: can't remove '//opt/tmp/ldconfig/data/opt': Permission denied
    rm: can't remove '//opt/tmp/ldconfig/data': Directory not empty
    rmdir: '//opt/tmp/ldconfig': Directory not empty
    sed: //opt/ipkg/info/ldconfig.control: No such file or directory
    Connecting to wl500g-repo.googlecode.com (209.85.147.82:80)
    libc_-104_entware.ip 100% |***************************************************| 348k --:--:-- ETA
    mv: can't rename '//opt/tmp/libc/control/control': Permission denied
    rm: can't remove '//opt/tmp/libc/control/control': Permission denied
    rm: can't remove '//opt/tmp/libc/control': Directory not empty
    rm: can't remove '//opt/tmp/libc/data/opt/lib/libresolv-0.9.32.so': Permission denied
    rm: can't remove '//opt/tmp/libc/data/opt/lib/libnsl-0.9.32.so': Permission denied
    rm: can't remove '//opt/tmp/libc/data/opt/lib/libdl-0.9.32.so': Permission denied
    rm: can't remove '//opt/tmp/libc/data/opt/lib/libcrypt-0.9.32.so': Permission denied
    rm: can't remove '//opt/tmp/libc/data/opt/lib/libuClibc-0.9.32.so': Permission denied
    rm: can't remove '//opt/tmp/libc/data/opt/lib/libm-0.9.32.so': Permission denied
    rm: can't remove '//opt/tmp/libc/data/opt/lib/ld-uClibc-0.9.32.so': Permission denied
    rm: can't remove '//opt/tmp/libc/data/opt/lib/libutil-0.9.32.so': Permission denied
    rm: can't remove '//opt/tmp/libc/data/opt/lib': Permission denied
    rm: can't remove '//opt/tmp/libc/data/opt': Permission denied
    rm: can't remove '//opt/tmp/libc/data': Directory not empty
    rmdir: '//opt/tmp/libc': Directory not empty
    sed: //opt/ipkg/info/libc.control: No such file or directory
    Connecting to wl500g-repo.googlecode.com (209.85.147.82:80)
    libgcc_-104_entware. 100% |***************************************************| 32927 --:--:-- ETA
    mv: can't rename '//opt/tmp/libgcc/control/control': Permission denied
    rm: can't remove '//opt/tmp/libgcc/control/control': Permission denied
    rm: can't remove '//opt/tmp/libgcc/control': Directory not empty
    tar: can't remove old file ./opt/lib/libgcc_s.so.1: Permission denied
    rm: can't remove '//opt/tmp/libgcc/data/opt/lib/libgcc_s.so.1': Permission denied
    rm: can't remove '//opt/tmp/libgcc/data/opt/lib': Permission denied
    rm: can't remove '//opt/tmp/libgcc/data/opt': Permission denied
    rm: can't remove '//opt/tmp/libgcc/data': Directory not empty
    rmdir: '//opt/tmp/libgcc': Directory not empty
    sed: //opt/ipkg/info/libgcc.control: No such file or directory
    Connecting to wl500g-repo.googlecode.com (209.85.147.82:80)
    libpthread_-104_entw 100% |***************************************************| 32516 00:00:00 ETA
    mv: can't rename '//opt/tmp/libpthread/control/control': Permission denied
    rm: can't remove '//opt/tmp/libpthread/control/control': Permission denied
    rm: can't remove '//opt/tmp/libpthread/control': Directory not empty
    tar: can't remove old file ./opt/lib/libpthread-0.9.32.so: Permission denied
    rm: can't remove '//opt/tmp/libpthread/data/opt/lib/libpthread-0.9.32.so': Permission denied
    rm: can't remove '//opt/tmp/libpthread/data/opt/lib': Permission denied
    rm: can't remove '//opt/tmp/libpthread/data/opt': Permission denied
    rm: can't remove '//opt/tmp/libpthread/data': Directory not empty
    rmdir: '//opt/tmp/libpthread': Directory not empty
    sed: //opt/ipkg/info/libpthread.control: No such file or directory
    Connecting to wl500g-repo.googlecode.com (209.85.147.82:80)
    librt_-104_entware.i 100% |***************************************************| 6114 --:--:-- ETA
    rm: can't remove '//opt/tmp/ldconfig/control/control': Permission denied
    rm: can't remove '//opt/tmp/ldconfig/control': Directory not empty
    rm: can't remove '//opt/tmp/ldconfig/data/opt/bin/ldconfig': Permission denied
    rm: can't remove '//opt/tmp/ldconfig/data/opt/bin': Permission denied
    rm: can't remove '//opt/tmp/ldconfig/data/opt': Permission denied
    rm: can't remove '//opt/tmp/ldconfig/data': Directory not empty
    rm: can't remove '//opt/tmp/ldconfig': Directory not empty
    ........
     
  11. ZforZelda

    ZforZelda Serious Server Member

    hi, this might not be an appropriate place to request new packages but would you add lftp and proxychains? and I opened two issues on the project several days ago could you take a look at them?

    thanks for all your works :)
     
  12. ryzhov_al

    ryzhov_al Networkin' Nut Member

    Hi!
    Of course!
    Code:
    09    Defect    New    Medium   /etc/profile was not executed in screen   
    10    Defect    New    Medium   neither /etc/profile not /opt/etc/profile got executed in bash 
    Why it should be executed there? It will be executed only on logon, and, AFAIK, it's execution depend on your firmware, not a repo.
     
  13. ZforZelda

    ZforZelda Serious Server Member

    My bad, I thought /etc/profile was executed every time a new shell was created. I thought it was just a system wide ~/.bashrc, just googled and found how to specify a ~./bashrc equivalent in busybox shell, problem solved, thanks.
     
  14. NReale3370

    NReale3370 Serious Server Member

    Fantastic! I've been looking for a way to update my toolchain for years now. I build a lot of my own packages but I was never able to get a working toolchain on /opt to build.
     
  15. ryzhov_al

    ryzhov_al Networkin' Nut Member

    Yep! I think, the OpenWRT Buildroot is a best tool we can use with our own toolchains, even if we don't want to build OpenWRT firmware itself.

    There is a very simple Makefile's structure for any packages, so i may port almost any OpenWRT's package for Entware, and guys from OpenWRT may backport packages from my repo (my dnscrypt backported to OpenWRT for example).

    Checkout my additional packages feed, may be there lies some interesting things for you: asciiio terminal recorder or davfs2 for cloud storage mounting, or even some games.
     
  16. Planiwa

    Planiwa LI Guru Member

  17. molnart

    molnart Networkin' Nut Member

    is anyone using Midnight Commander either from the original optware or this repo? Sometime ago in optware some update broke the Ctrl-O functionality in midnight commander (the command allows you to view the output of the terminal). I was hoping this would work in this repo (which has a significantly newer version of MC), but it still isnt. :(

    Great work on this btw! Thanks a lot
     
  18. ryzhov_al

    ryzhov_al Networkin' Nut Member

    I'm afraid, no. OpenWRT team refuses to built any firmwares with proprietary binary blobs. It was decided after long and non-successful story with wl-driver replacement in a wl-500g premium router. The wl-500gpv1 kernel 2.4 based firmware is a last OpenWRT try.

    In a RT-N66U we have got another nail in... bottom. A ctf.ko, another closed sources binary for a hardware NAT offload. It does not bring us closer to fully open source firmwares.
     
  19. ryzhov_al

    ryzhov_al Networkin' Nut Member

    BTW! Why don't you make firmware with debugging options and get gdb in your hands? The problem definitely IS in a uclibc+busybox!

    Shibby?
     
  20. NReale3370

    NReale3370 Serious Server Member

    Hey, in all your package building have you been able to build a shared p7zip? 7z with the 7z.so and Codecs/Rar29.so. I could cross compile it ok with the Tomato toolchain, but with this one I just keep getting this when I run 7z, despite both files being in the right place (i even renamed 7z.so to 7z.dll due to this error):

    7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
    p7zip Version 9.20 (locale=C,Utf16=off,HugeFiles=on,1 CPU)
    Can't load '/opt/lib/p7zip/7z.dll' (File not found)
    Can't load '/opt/lib/p7zip/Codecs/Rar29.so' (File not found)

    Formats:

    Codecs:
    I noticed the package in entware is the 7za which doesn't include rar. Just wondering if you ever got it work or wanted to help take a crack at it.
     
  21. ZforZelda

    ZforZelda Serious Server Member

    lftp and proxychains? I know I've mentioned that before...
     
  22. ryzhov_al

    ryzhov_al Networkin' Nut Member

    Sorry, no. p7zip is a heavy Windows archiver and it even can't store an owner/group info. It was compiled after several persistent requests:)
    Please, use unrar package.
     
  23. NReale3370

    NReale3370 Serious Server Member

    Will do, its just odd that the shared compiles and runs fine under the Tomato toolchain and not entware's. Must be something about the newer gcc/uClibc combo and 7z's wacky way of accessing the shared library. Unrar's actually nicer it uses the same syntax and has a progress bar, what a pleasant surprise.
     
  24. lancethepants

    lancethepants Network Guru Member

    I'd like to request the modules needed to run sabnzbd. It needs par2cmdline, python-cheetah, python-openssl, python-yenc. From there I find it preferable to just grab the latest python source.
     
  25. rs232

    rs232 Network Guru Member

    I'm re-trying to install this on cifs rather than USB.
    I mounted /opt into /cifs1/opt

    It seems to install fine but when I try to add packages it fails complaining about lack of space. After further investigation this seems to be related to a little tomato bug where cifs shares are mounted but reported as they where not and the cifs size is reported as 0.

    Code:
    root@tomato:/opt# opkg install nginx
    Installing nginx (1.2.2-1a) to root...
    Collected errors:
    * get_available_kbytes: Failed to statvfs for /opt: Value too large for defined data type.
    * verify_pkg_installable: Only have 0kb available on filesystem /opt, pkg nginx needs 277
    * opkg_install_cmd: Cannot install package nginx.
    root@tomato:/opt# df -h
    Filesystem                Size      Used Available Use% Mounted on
    /dev/root                8.3M      8.3M        0 100% /
    tmpfs                    61.9M    784.0K    61.1M  1% /tmp
    devfs                    61.9M        0    61.9M  0% /dev
    df: /cifs1: Value too large for defined data type
    df: /cifs2: Value too large for defined data type
    df: /opt: Value too large for defined data type
    
    Is there any way to bypass this storage check and install any ways ignoring errors?
     
  26. ryzhov_al

    ryzhov_al Networkin' Nut Member

    Code:
    $ opkg --force-space ... 
     
  27. koitsu

    koitsu Network Guru Member

    I don't know what you're doing but I have absolutely no problem using Entware / opkg on a CIFS/SMB share. The problem as I see it, from your df output, is that you HAVE no /cifs1 mount. :p

    Look here:

    Code:
    root@gw:/tmp/home/root# df -k
    Filesystem          1K-blocks      Used Available Use% Mounted on
    /dev/root                6592      6592        0 100% /
    tmpfs                    63500      216    63284  0% /tmp
    devfs                    63500        0    63500  0% /dev
    -                    943435012 433418284 510016728  46% /cifs1
    -                    943435012 433418284 510016728  46% /opt
     
    root@gw:/tmp/home/root# mount
    rootfs on / type rootfs (rw)
    /dev/root on / type squashfs (ro)
    proc on /proc type proc (rw)
    tmpfs on /tmp type tmpfs (rw)
    devfs on /dev type tmpfs (rw,noatime)
    sysfs on /sys type sysfs (rw)
    devpts on /dev/pts type devpts (rw)
    - on /cifs1 type cifs (rw,noatime,nodiratime,unc=\\192.168.1.51\tomato,username=tomato,domain=WORKGROUP,posixpaths,rsize=16384,wsize=57344)
    - on /opt type cifs (rw,noatime,nodiratime,unc=\\192.168.1.51\tomato,username=tomato,domain=WORKGROUP,posixpaths,rsize=16384,wsize=57344)
    
    Wondering where /opt came from in my example? Pretty simple: mount -o bind /cifs1/opt /opt

    You can put that command in Administration -> CIFS Client -> Execute When Mounted and never have to worry about it again.
     
  28. rs232

    rs232 Network Guru Member

Share This Page