Welcome! Log In Create A New Profile

Advanced

Dell Appliance

Posted by JDS420 
Re: Dell Appliance
June 28, 2018 09:55AM
More from another script:
    public static function LEDOff() {
        self::LEDControl('off', $white=false);
        self::LEDControl('off', $white=true);
    }

    // state = 'on' | 'off' | 'blink'
    public static function LEDControl($state = 'on', $white=true) {
        $color = $white ? 'white' : 'orange';

        // there's some interplay with triggers and brightness
        // lets start by turning everything off
        if (is_file("/sys/class/leds/$color/brightness")) {
            SudoClient::RunCommandWait("echo none > /sys/class/leds/$color/trigger; echo 0 > /sys/class/leds/$color/brightness");
        }

        if($state === 'off')
            return;

        // $state === 'on'
        $on = 255;
        $blink = 'none';

        if($state === 'blink') {
            $on = 255;
            $blink = 'heartbeat';
        }

        if (is_file("/sys/class/leds/$color/brightness")) {
            // setting blink to heartbeat, but on to false turns off led
            // so set the brightness first, then trigger
            SudoClient::RunCommandWait("echo $blink > /sys/class/leds/$color/trigger; echo $on > /sys/class/leds/$color/brightness");
        }
    }

    public static function LEDStatus() {
        if(!is_file('/sys/class/leds/white/brightness'))
            return "No LED detected\n";
        $out = '';
        $on = trim(file_get_contents('/sys/class/leds/white/brightness')) != '0' ? 'on' : 'off';
        $blink = trim(file_get_contents('/sys/class/leds/white/trigger'));
        $out .= "white: $on | $blink\n";
        $on = trim(file_get_contents('/sys/class/leds/orange/brightness')) != '0' ? 'on' : 'off';
        $blink = trim(file_get_contents('/sys/class/leds/orange/trigger'));
        $out .= "orange: $on | $blink\n";
        return $out;
    }

    public static function LEDWhiteIsOn() {
        if(!is_file('/sys/class/leds/white/brightness'))
            return true;
        return (trim(file_get_contents('/sys/class/leds/white/brightness')) != '0');        
    }
    public static function LEDOrangeIsOn() {
        if(!is_file('/sys/class/leds/orange/brightness'))
            return false;
        return (trim(file_get_contents('/sys/class/leds/orange/brightness')) != '0');
        
    }
Re: Dell Appliance
June 28, 2018 10:44PM
JDS420,

Right, it shows that we can just brute force our way to find these GPIO easily.

I can see only one LED in the back that blinks constanly. Is there other LEDs that you can see?

Update:

That's it. Only 1 LED that can be turned on White or Orange.

-bodhi
===========================
Forum Wiki
bodhi's corner



Edited 2 time(s). Last edit at 06/28/2018 11:27PM by bodhi.
Re: Dell Appliance
June 28, 2018 10:48PM
BTW, I've confirmed that RTC works, too.

[    5.170730] rtc-mv f1010300.rtc: setting system clock to 2018-06-28 08:27:34 UTC (1530174454)

-bodhi
===========================
Forum Wiki
bodhi's corner



Edited 1 time(s). Last edit at 06/28/2018 10:49PM by bodhi.
Re: Dell Appliance
July 04, 2018 08:28PM
Here is what I got so far.

Everything is working well. Except:

Minor:
- SPI flash is still protected. So we can see the u-boot envs in Debian, but can't change it yet.
- LEDs: without GPL, looks like we need to ping each one. But this is a good-to-have, not important.

Major:
- 2GB Memory is a tough one. I've rebuilt the kernel to use highmem. But testing showed that it is quite unstable on Kirkwood (ARMV5). Kirkwood boxes that has 512MB is running fine. But kernel memory bug showed up when running with this box. Tasks that make use of the memory region > 768M caused a memory bug to show up.

[   26.262100] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   27.087276] BUG: Bad rss-counter state mm:7a16fc7b idx:1 val:1
[   28.386977] NET: Registered protocol family 15
[   31.463489] Bluetooth: Core ver 2.22
[   31.477927] NET: Registered protocol family 31
[   31.482399] Bluetooth: HCI device and connection manager initialized
[   31.503190] Bluetooth: HCI socket layer initialized
[   31.513677] Bluetooth: L2CAP socket layer initialized
[   31.518785] Bluetooth: SCO socket layer initialized
[   31.613470] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   31.618845] Bluetooth: BNEP filters: protocol multicast
[   31.637045] Bluetooth: BNEP socket layer initialized
[   34.016189] NFSD: starting 90-second grace period (net f000001c)
[   34.074115] BUG: Bad rss-counter state mm:d5a487c9 idx:1 val:1
[   41.244479] BUG: Bad rss-counter state mm:87a378b3 idx:1 val:1
[   43.146299] BUG: Bad rss-counter state mm:2ecb18d6 idx:1 val:1

If any of you guys can help in researching this kernel BUG issue, it would be great. Note that AMRV7 boxes such as the Thecus N2350 is fine using the same kernel config option (CONFIG_HIGHMEM).

-bodhi
===========================
Forum Wiki
bodhi's corner



Edited 1 time(s). Last edit at 07/04/2018 08:46PM by bodhi.
Re: Dell Appliance
July 05, 2018 08:27PM
bodhi Wrote:
> Major:
> - 2GB Memory is a tough one. I've rebuilt the
> kernel to use highmem. But testing showed that it
> is quite unstable on Kirkwood (ARMV5). Kirkwood
> boxes that has 512MB is running fine. But kernel
> memory bug showed up when running with this box.
> Tasks that make use of the memory region > 768M
> caused a memory bug to show up.
>
Looking through the existing DTS files for Kirkwood it appears that the kirkwood-openblocks_a7.dts another Armada 300 based system is the only one that currently enables more than 512MB of memory (it enables 1GB). So its likely that kirkwood support for anything more than 512MB of memory has minimal if any testing.

Ray
Re: Dell Appliance
July 05, 2018 11:02PM
Ray,

> So its likely that kirkwood support for
> anything more than 512MB of memory has minimal if
> any testing.

True. I have not seen a > 1GB Kirkwood box until this M300. There were memmory tricks in the past that allow us to go over 768M, but they all phased out (those were workarounds so they were removed when the CONFIG_HIGHMEM was merged to mainline).

I'll look around for a while. Perhaps I will release the next kernel with the M300 DTS supports. We will run with 768M until this bug is resolved

-bodhi
===========================
Forum Wiki
bodhi's corner



Edited 1 time(s). Last edit at 07/05/2018 11:03PM by bodhi.
Re: Dell Appliance
July 06, 2018 08:56PM
This is an interesting patch:

Quote

Linux 4.17-rc4

Leon Romanovsky (4):
RDMA/mlx5: Fix multiple NULL-ptr deref errors in rereg_mr flow
RDMA/mlx5: Protect from shift operand overflow
RDMA/mlx5: Properly check return value of mlx5_get_uars_page
RDMA/mlx4: Add missed RSS hash inner header flag

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: Dell Appliance
October 02, 2018 01:45PM
Is this M300 device worth getting as a general purpose "toy" to supercede a Pogo for example. The price is right ($20) and the quality looks great. Is the Debian and uboot situation pretty solid now since nothing on this thread since June.

Thanks.
Re: Dell Appliance
October 02, 2018 11:14PM
mikeh49,

It is working fine, except the 2GB memory issue. Right now, it will use only 1GB.

And we are still running stock u-boot, no new u-boot.

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: Dell Appliance
October 10, 2018 09:58AM
Got a M300 and trying to get it working. I built the Debian 4.12 file system with the M300 DTS. I have serial working with the M300. When I interrupt the boot, I can enter the 2 setenv lines, but when I get to usb start, the system cannot find the USB with the filesystem.

Marvell>> usb start

(Re)start USB...
USB:   scanning bus for devices... 3 USB Device(s) found
Waiting for storage device(s) to settle before scanning...
1 Storage Device(s) found
Marvell>> 

(Re)start USB...
USB:   scanning bus for devices... 1 USB Device(s) found
Waiting for storage device(s) to settle before scanning...
0 Storage Device(s) found

If I continue with the rest of the commands I get a "bad partition" error from the ext2load command.

I tried with another ext2 formatted USB (Oxnas file system) and get the same result. Also, the Debian USB mounts fine on a pogo ( built on a Pogo using the root account) and on a Windows box with the ext2fs helper app.

Ideas?

I hope the M300 is not bad.

Update: tried with a Win7 box running Putty on my usb-serial adapter and it worked. Previously I was using the adapter on a Macbook with Coolterm. Whatever. Now running Debian 4.12 filesystem.

Now I don't quite understand the after boot change to the /etc/fw_env.config file. I commented the existing entry for mtd0 and added the entry for mtd1 from Bodhi's post. Is that right? Or, should there be an entry for both mtd0 and mtd1?



Edited 1 time(s). Last edit at 10/10/2018 02:49PM by mikeh49.
Re: Dell Appliance
October 10, 2018 06:01PM
mikeh49,

> Now I don't quite understand the after boot change
> to the /etc/fw_env.config file. I commented the
> existing entry for mtd0 and added the entry for
> mtd1 from Bodhi's post. Is that right?

Correct. There should be one entry.

Try and see if you can list the envs in Debian:

fw_printenv

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: Dell Appliance
October 10, 2018 06:34PM
Looks like it works, especially after I added the missing / in front of dev ;)

root@debian:~# fw_printenv
baudrate=115200
loads_echo=0
rootpath=/mnt/ARM_FS/
kernel2bootup=no
usiversion=kacemini-1.5
console=console=ttyS0,115200 mtdparts=spi_flash:0x7f000@0(uboot),0x1000@0x7f000(u-boot-env)
CASset=min
MALLOC_len=1
ethprime=egiga0
bootargs_root=root=/dev/nfs rw
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
bootargs=console=ttyS0,115200 mtdparts=spi_flash:0x7f000@0(uboot),0x1000@0x7f000(u-boot-env) root=/dev/sda1 rw
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
ethmtu=1500
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
usb0Mode=host
yuk_ethaddr=00:00:00:EE:51:81
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
ethact=egiga0
stdin=serial
stdout=serial
stderr=serial
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=3
disaMvPnp=no
enaAutoRecovery=yes
pcieTune=no
filesize=728c0
fileaddr=1200000
netmask=255.255.255.0
ipaddr=192.168.58.233
serverip=192.168.58.188
ethaddr=18:03:73:41:db:3e
run_diag=yes
mainlineLinux=no
bootargs_console=console=ttyS0,115200 mtdparts=spi_flash:0x7f000@0(uboot),0x1000@0x7f000(u-boot-env)
bootcmd_ide=run bootcmd_ideload; setenv bootargs $(bootargs_console); bootm 0x100000 0x01100000
bootcmd_ideload=ide reset; ext2load ide 0:1 0x100000 /uImage; ext2load ide 0:1 0x01100000 /uInitrd
bootcmd=run bootcmd_ide
bootcmd2=ide reset; ext2load ide 0:2 0x100000 /kbox/bin/uImage.bak; ext2load ide 0:1 0x01100000 /uInitrd;bootm 0x100000 0x01100000
root@debian:~#

It's not clear to me that the changes from your instructions are in the environment. Does this mean that the set of commands you provided need to be entered for a reboot, meaning that a serial console is reqd? Maybe you can provide a quick explanation of what we did to get it to boot from the USB.

Now, what about installing Debian on the internal memory card? Reformat and have a 4G partition for the filesystem and booting, the rest for data? Am I getting ahead of things?



Edited 1 time(s). Last edit at 10/10/2018 06:43PM by mikeh49.
Re: Dell Appliance
October 10, 2018 09:08PM
mikeh49,

> Looks like it works, especially after I added the
> missing / in front of dev ;)

Cool! that will help :)

> It's not clear to me that the changes from your
> instructions are in the environment. Does this
> mean that the set of commands you provided need to
> be entered for a reboot, meaning that a serial
> console is reqd? Maybe you can provide a quick
> explanation of what we did to get it to boot from
> the USB.

As I mentioned, SPI flash works but we cannot set envs in Debian yet. So to make it permanent, you have to do it in serial console and save them. Or boot stock, log in and set envs in stock OS.

>
> Now, what about installing Debian on the internal
> memory card? Reformat and have a 4G partition for
> the filesystem and booting, the rest for data? Am
> I getting ahead of things?

Please refresh my memory. What do you see in this system, is this the same as what renojim observed?
https://forum.doozan.com/read.php?2,61344,61744#msg-61744

If that internal memry card that you referred to is "16GB SATA flash drive", then the boot envs must be adjusted further.

BTW, it will help me to quickly understand problem/question if you always post the entire serial boot log (from u-boot banner). That way I can read only 1 post instead of going back and forth and find info in previous posts (very disrruptive when you try to visualize the problem).

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: Dell Appliance
October 11, 2018 07:42AM
Yes, internal flash drive same as renojim:

Disk /dev/sda: 14.9 GiB, 16013852672 bytes, 31277056 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1  *          32   524287   524256  256M 83 Linux
/dev/sda2         524288 30869503 30345216 14.5G 83 Linux
/dev/sda3       30869504 31277055   407552  199M  5 Extended
/dev/sda5       30869536 31277055   407520  199M 82 Linux swap / Solaris

First partition is the kernel files (same as in the /boot directory of your filesystem).

root@debian:~# ls /media/ssd
.                             uImage
..                            uImage.kbox_backup
System.map-2.6.32-5-kirkwood  uInitrd
config-2.6.32-5-kirkwood      uInitrd.kbox_backup
initrd.img                    vmlinuz
initrd.img-2.6.32-5-kirkwood  vmlinuz-2.6.32-5-kirkwood
lost+found

Second partition has the Debian filesystem; the /boot directory is empty.

I should have stock OS root access, so can do more later.

My idea would be to install your Debian system on the internal drive replacing the stock OS. I don't think the stock OS has much use. If this could be done, this would be a nice little box.
Re: Dell Appliance
October 11, 2018 09:35AM
I have root access in serial to the stock OS and can see the envitronment with fw_printenv.

I won't be able to work on this after today until the end of October, so perhaps we should just put it away for the time being.

For your info, here is the environment from the stock OS:
root@dellkaceM300:~# fw_printenv
baudrate=115200
loads_echo=0
rootpath=/mnt/ARM_FS/
kernel2bootup=no
usiversion=kacemini-1.5
console=console=ttyS0,115200 mtdparts=spi_flash:0x7f000@0(uboot),0x1000@0x7f000(u-boot-env)
CASset=min
MALLOC_len=1
ethprime=egiga0
bootargs_root=root=/dev/nfs rw
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
bootargs=console=ttyS0,115200 mtdparts=spi_flash:0x7f000@0(uboot),0x1000@0x7f000(u-boot-env) root=/dev/sda1 rw
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
ethmtu=1500
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
usb0Mode=host
yuk_ethaddr=00:00:00:EE:51:81
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
ethact=egiga0
stdin=serial
stdout=serial
stderr=serial
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=3
disaMvPnp=no
enaAutoRecovery=yes
pcieTune=no
filesize=728c0
fileaddr=1200000
netmask=255.255.255.0
ipaddr=192.168.58.233
serverip=192.168.58.188
ethaddr=18:03:73:41:db:3e
run_diag=yes
mainlineLinux=no
bootargs_console=console=ttyS0,115200 mtdparts=spi_flash:0x7f000@0(uboot),0x1000@0x7f000(u-boot-env)
bootcmd_ide=run bootcmd_ideload; setenv bootargs $(bootargs_console); bootm 0x100000 0x01100000
bootcmd_ideload=ide reset; ext2load ide 0:1 0x100000 /uImage; ext2load ide 0:1 0x01100000 /uInitrd
bootcmd=run bootcmd_ide
bootcmd2=ide reset; ext2load ide 0:2 0x100000 /kbox/bin/uImage.bak; ext2load ide 0:1 0x01100000 /uInitrd;bootm 0x100000 0x01100000

And the FW-env.config:
root@dellkaceM300:~# cat /etc/fw_env.config
# MTD Device     Offset    Environment Size     Flash Sector Size
/dev/mtd1        0x0       0x1000               0x1000

I did not try to save an environment variable as a test without adult supervision.
Re: Dell Appliance
October 11, 2018 01:15PM
mikeh,

> I did not try to save an environment variable as a
> test without adult supervision.

:) Right now it can not be saved, it is still protected. I'll look in to this when I can get back to playing with the box.

Since your internal flash drive same as renojim (probably same as mine too), I would use that for the system drive. The only thing we need to watch and put in some setup to prevent it from wearing out over time.

What I usually do for flash drive rootfs:
http://forum.doozan.com/read.php?2,13702,13704#msg-13704

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: Dell Appliance
October 11, 2018 03:06PM
No problem, I'm not in a hurry. Just so I understand, we cannot change the uboot environment variables even from root on the stock OS. Right?

Thanks for your help.
Re: Dell Appliance
October 12, 2018 12:00AM
> Just so I
> understand, we cannot change the uboot environment
> variables even from root on the stock OS. Right?

You should be able to set envs in stock OS.

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: Dell Appliance
October 12, 2018 08:55AM
If you can determine the environment settings to boot from USB before SATA, then we could make these changes from the stock OS and boot without a serial console. That would be a good start.

Then, could the existing stock OS be replaced by putting your kernel files (contents of /boot directory) in the boot partition of the flash drive and the rest of the file system in the second partition? Would this work with the stock uboot environment?

Is there something in the stock OS that permits uboot environment changes that is not in your filesystems?
Re: Dell Appliance
October 12, 2018 05:50PM
mikeh49,

> If you can determine the environment settings to
> boot from USB before SATA, then we could make
> these changes from the stock OS and boot without a
> serial console. That would be a good start.

That would be easy to do.

> Then, could the existing stock OS be replaced by
> putting your kernel files (contents of /boot
> directory) in the boot partition of the flash
> drive and the rest of the file system in the
> second partition?

Yes, it is possible. But we migth as well wipe out the stock system on this disk and use 1 partition, if possible.

> Would this work with the stock
> uboot environment?

Stock u-boot envs will need to be modified to boot the new rootfs

>
> Is there something in the stock OS that permits
> uboot environment changes that is not in your
> filesystems?

Not really, the SPI flash is protected by stock u-boot after it saves any changes. It is doable to unprotect it, but I don't have any time to work on that issue, ATM.

-bodhi
===========================
Forum Wiki
bodhi's corner



Edited 1 time(s). Last edit at 10/12/2018 09:08PM by bodhi.
Re: Dell Appliance
October 12, 2018 06:34PM
No problem, I don't have any time to work on the M300 for the next month at least. I'll check in with you at the end of the mont. If you had the environment for booting from USB without serial by the end of the month, I have a few days them. Otherwise, I will be available in early December. Thanks for the help and info. I have 3 Pogos running for 2-3 years with zero issues.
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: