Code Monkey home page Code Monkey logo

ravpower_wd09_entware's People

Stargazers

 avatar  avatar  avatar

ravpower_wd09_entware's Issues

Few observations

Just tried this out and had a partial success. On Ubuntu 18.04 and a Ravpower WD09.

Firmware 2.000.008
Linux rav 2.6.36+ #507 Thu Nov 15 17:14:27 CST 2018 mips unknown

About the RoboFile.php:

The chroot command kept failing for me. Had to change the following line:

-        $this->_copy('/usr/bin/qemu-mipsel-static','build/usr/bin/qemu-mipsel');
+        $this->_copy('/usr/bin/qemu-mipsel-static','build/usr/bin/qemu-mipsel-static');

I do not have robo.phar installed in /usr/local/bin. Would have been nicer to wget it in the script.

Apparently my device does not support ext4 (missing in /proc/filesystems). So changed it to ext2:

-        $this->_exec("mkfs.ext4 ./output/extern_package");
+        $this->_exec("mkfs.ext2 ./output/extern_package");

About the WD09 device:

The rc.local script on the device does not seem to work. It tries to mount to /extern but that directory does not exist. I changed it to /mnt and updated the init scripts.

Dropbear is started correctly but I could not login as root because the default home dir /root does exist. Also changing the root password requires manual merging of /etc/passwd and /etc/shadow. And perhaps login as root should be disabled :-)
It would be nice if startup.sh also added /opt/bin to the PATH.

Lastly I wanted to add a swap file but the swapon function always fails with 'Function not implemented'. It seems the kernel is build without support for this :-(

Possible issue with Entware mounting

Hey!

Following your PHP script, I've created an installer package that does the same, without the need of a PHP runner, or a separate server with qemu, but rather, right on the FileHub.

The script set is available here. As you can see, it follows your script step by step:

  1. Creates a temporary EXT2 chroot image for Entware to run the install in
  2. Mounts tempFS to $(pwd)/build
  3. Creates minimal viable file system for chroot, adds busybox and symlinks, mounts /dev and /proc
  4. Chroot's into $(pwd)/build, retrieves Entware install script, and runs it
  5. Installs busybox, entware-opt and dropbear packages
  6. Creates final extern_image, a 128MB EXT2 image, and mounts it to $(pwd)/entware
  7. Copies the $(pwd)/build/opt folder to $(pwd)/entware
  8. Destroys the original chroot and unmounts the images, cleaning up the remains
  9. Copies an updated rc.local to /etc, and runs etc_tools p to persist this change

The image is created properly, and for some mysterious reasons, my firmware (2.000.018) came with /opt existing, but /extern does not - which is why the rc.local changes are necessary. I also took some liberty to make the script itself a bit more dynamic.

This new rc.local runs fine on boot, however... When it is executed, the /data/*DiskN mounts do not exist yet, meaning it never succeeds on its own to mount these.

As you've previously managed to get it working, would you mind giving a few pointers on how to get this mount to work? I thought about adding some repeat retries to the script (try in first few minutes of boot), or possibly patching the script responsible for mounting the disk partitions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.