Thursday, March 30, 2023

[Solved] Change default shell of a regular user in an Alpine Linux container to BASH

 When I added a regular user in Alpine Linux which is a container in LXD running on Debian Bookworm, no matter what I did, it would not use BASH. Everything was changed correctly. I changed it using chsh, I modified /etc/passwd...anytime I su - user, it would always use ash. I know bash is installed since I could enter bash and it would change shells.


Solution:

create a .profile file in $HOME

vi ~/.profile

In your .profile, add the following:

if [ -n "$BASH_VERSION" ]; then

    # include .bashrc if it exists

    if [ -f "$HOME/.bashrc" ]; then

    . "$HOME/.bashrc"

    fi

fi

Exit and log in again, and you should be using bash.

Wednesday, October 19, 2022

Permanently set DNS in headless Debian or LXC/LXD container via CLI

 If you're like me and you've been through all those howto's that have you installing and using nmcli/resolvconf/network-manager and still don't have a permanent DNS, well you've come to the right place.

Again, I tried all that and then some. I even tried editing dhclient.conf and that didn't do anything either.

Forget installing whatever program that you don't need. 

All you need to do are three things.


1. Check if /etc/resolv.conf is a symlink to /run/systemd/resolve/stub-resolv.conf

    If it IS a symlink then ...

2. Delete the /etc/resolv.conf symlink and add a new /etc/resolv.conf

    rm /etc/resolv.conf; vi /etc/resolv.conf

    In the new /etc/resolv.conf add your nameserver

        nameserver 192.168.5.20

3. Restart your network or reboot.


The symlink is managed so anytime you edit the symlinked resolv.conf, the manager changes it back. But if you delete the symlink and create it again, the nameserver you add will be persistent.

Wednesday, October 5, 2022

[Solved] Heimdall not allowing background change after editing upload_max_filesize php.ini for NON-docker install

1. I'm not using Docker
2. I did a regular install in an LXC container with Apache

So I wanted to change Heimdall dashboard background to a file larger than 2M, but even after changing upload_max_filesize to 30M in /etc/php/7.4/apache2/php.ini, it still wouldn't take. 
After trying a bunch of other things, which of course none of them worked, I tried one more thing and that was to just peek inside /etc/php/7.4/cli. And what do you know, another php.ini file. 
I edited that, restarted Apache and also restarted heimdall. 
I was finally able to change the background to a file larger than 2M! Woot!

Sunday, September 18, 2022

[Solved] Streaming USB webcam via command command line with cvlc (VLC) with MJPG output

Welp, I've been using VLC to stream my webcam to my LAN so I can see when my Amazon packages arrive since my doorbell isn't that loud. At first I used motion since it was the only thing that somewhat worked, but it was horrid...people looked like they were just going across my screen only with the same leg up and just moving every second instead of actually walking. Then I did some tweaks with VLC and it was laggy but it worked way better than motion. After many hours I found that Theora and Ogg had the smoothest results.

Then, I wanted to use only the command line version since it would reduce memory usage by half...then some more hours to even get it working and then some more to get MJPG working then realizing all that time was pointless since now it's way faster without transcoding lol. I also found out that using MKV is (for me) faster than Ogg with far less dropped frames. For MKV you need the libmatroska-dev library. 

    sudo apt-get install libmatroska-dev

Anyways...for those who want to know how to set the GUI for decent webcam streaming on your LAN...see below.


1. Select your video device (duh)
2. Check the [Show more options] box and then fill in the Advanced options.
2 (a) If you want to use MJPG instead of the default YUYV, fill in the third line [Video input chroma format] with MJPG, otherwise leave it blank or whatever other option you need, such as h264. Set the other info so that you can get all your settings done at once. Then click OK
3. At the bottom in the [Edit Options] box, copy the whole line. That's your v4l2 options. You'll need that later so save it into a file otherwise you have to select your options EVERY TIME.

INFO:I use HTTP as my stream so your settings may differ if you stream with something else. And I'm only streaming at 800x448 resolution. Again, it works for my purpose. 

4. Click Stream -> Next, click the pull-down and select HTTP and click Add -> Next.
If you want to transcode, create a new profile. Select Ogg/Ogm

-As mentioned earlier, I switched to MKV-
Then click the [Video codec] tab -> check the Video checkbox and select Theora in the Codec pull-down. Adjust the Frame Rate to fit your needs. I use 16 since it's good enough and doesn't stutter. If you want audio then select that as well. For my purposes, I don't use audio to keep the stream fast. Then click Create, and then Next.

5. Copy the [Generated stream output string] to be used later for the command line option.

6. Click Stream to make sure it works.

7. To save on RAM usage, use the command line program, cvlc

cvlc -vvv <your device> <the v4l2 options> <the transcode info>

    The -vvv device is in [MRL] just above [Edit Options]

cvlc -vvv v4l2:///dev/video0 --no-audio :v4l2-standard= :v4l2-dev=/dev/video0 :v4l2-vbidev= :v4l2-chroma=MJPG :v4l2-input=0 :v4l2-audio-input=-1 :v4l2-width=800 :v4l2-height=448 :v4l2-aspect-ratio= :v4l2-fps=16 :no-v4l2-controls-reset :v4l2-brightness=-1 :v4l2-brightness-auto=-1 :v4l2-contrast=-1 :v4l2-saturation=-1 :v4l2-hue=-1 :v4l2-hue-auto=-1 :v4l2-white-balance-temperature=-1 :v4l2-auto-white-balance=-1 :v4l2-red-balance=-1 :v4l2-blue-balance=-1 :v4l2-gamma=-1 :v4l2-autogain=-1 :v4l2-gain=-1 :v4l2-sharpness=-1 :v4l2-chroma-gain=-1 :v4l2-chroma-gain-auto=-1 :v4l2-power-line-frequency=0 :v4l2-backlight-compensation=-1 :v4l2-band-stop-filter=-1 :no-v4l2-hflip :no-v4l2-vflip :v4l2-rotate=-1 :v4l2-color-killer=-1 :v4l2-color-effect=-1 :v4l2-audio-volume=-1 :v4l2-audio-balance=-1 :no-v4l2-audio-mute :v4l2-audio-bass=-1 :v4l2-audio-treble=-1 :no-v4l2-audio-loudness :v4l2-set-ctrls= :live-caching=150 --sout '#transcode{vcodec=theo,vb=815,fps=16,scale=Auto,width=800,height=448,acodec=none,scodec=none}:http{mux=mkv,dst=:8080/}' --no-sout-all --sout-keep --quiet

And if you don't want or need to transcode (since I set the resolution and the fps and all the other options, I'm sending it as I want it...although the fps ends up as 250 [sometimes 1000, not sure what's going on there] instead of 16!)

cvlc -vvv v4l2:///dev/video0 --no-audio :v4l2-standard= :v4l2-dev=/dev/video0 :v4l2-vbidev= :v4l2-chroma=MJPG :v4l2-input=0 :v4l2-audio-input=-1 :v4l2-width=800 :v4l2-height=448 :v4l2-aspect-ratio= :v4l2-fps=16 :no-v4l2-controls-reset :v4l2-brightness=-1 :v4l2-brightness-auto=-1 :v4l2-contrast=-1 :v4l2-saturation=-1 :v4l2-hue=-1 :v4l2-hue-auto=-1 :v4l2-white-balance-temperature=-1 :v4l2-auto-white-balance=-1 :v4l2-red-balance=-1 :v4l2-blue-balance=-1 :v4l2-gamma=-1 :v4l2-autogain=-1 :v4l2-gain=-1 :v4l2-sharpness=-1 :v4l2-chroma-gain=-1 :v4l2-chroma-gain-auto=-1 :v4l2-power-line-frequency=0 :v4l2-backlight-compensation=-1 :v4l2-band-stop-filter=-1 :no-v4l2-hflip :no-v4l2-vflip :v4l2-rotate=-1 :v4l2-color-killer=-1 :v4l2-color-effect=-1 :v4l2-audio-volume=-1 :v4l2-audio-balance=-1 :no-v4l2-audio-mute :v4l2-audio-bass=-1 :v4l2-audio-treble=-1 :no-v4l2-audio-loudness :v4l2-set-ctrls= :live-caching=150 --sout '#standard{access=http,mux=mkv,dst=:8080/}' --quiet


Transcoding with MJPG is about 60% CPU usage, YUYV is about 35% CPU usage, and no transcoding is about 2% (evenings due to less light) to 7% (daytime due to brighter colors) CPU usage. I went with no transcoding since I'm running Linux on a mini PC with only 2 cores and 2 threads.

If you want to just use the GUI, skip the [Advanced options] part and just paste the v4l2 options, which you saved earlier, directly in the [Edit Options] box. You still need to select your [Video device name] tho. Then select the transcode profile you created or uncheck the [Activate Transcode] checkbox to skip transcoding, and then stream.

Hope this helps!

Wednesday, June 22, 2022

Stupid Galaxy/Android keyboard update got rid of "3 x 4 flick", here's how to get it back!

 Well, it might be an unpopular opinion but I like using the 3x4 flick input keyboard and after the latest Galaxy/Android update (I did mine on June 19, 2022 for my Galaxy S20). Well color me surprised when I couldn't type anything properly...WTF! I checked and double checked but couldn't find the "3x4 flick" option! It only had the stupid "3x4" option and you need to move your finger left to right to get the letter you want??...so freaking annoying. I like the tap, flick up, flick down, flick left, or flick right way of entering characters...been using it forever so I have it memorized. I don't want to learn another way.


Luckily after a bit of searching I found out how to get the "flick" part back.


Go to Settings > General Management > Galaxy Keyboard settings > Layout > Button and symbol layout
Select Alternative. Next go back to Galaxy Keyboard settings > Languages and types, and click (in my case) English (US) and select "3 x 4 flick"

All is well again! and Leave my keyboard setting alone!

Wednesday, May 4, 2022

[Solved] Linux: Fix for USB Webcam not being recognized and no /dev/video* for newer kernels or after kernel upgrade

 So my USB webcam was working fine until newer kernel versions. Then all of a sudden it wouldn't show up in guvcview or cheese. Tried a bunch of stuff but it was pointless. Then after much googling, I found two fixes, a temporary one and a permanent one. 
Because this only worked because I tried the temporary fix first, your results may vary. Therefore, try the temp fix to see if your unrecognizable webcam will actually work.

1. [Temporary, necessary after reboot. **Must have a second working webcam**] If you have another USB webcam that actually works, reboot with the working webcam plugged in. This will load uvcvideo during boot. Then plug in the one that doesn't get recognized and it should get recognized.

2. [Permanent] in /etc/modules-load.d create uvcvideo.conf and add the following line

    uvcvideo

*If Fix #1 works, then this will load uvcvideo during boot without needing to actually do Fix #1. Also make sure uvcvideo isn't added to a blacklist.

Tuesday, September 26, 2017

[Solved] Disable hot corner in gnome-shell

1. Start: gnome-shell-extension-prefs
2. scroll down to TaskBar
      -you should see a gear for the settings, click on the gear























      -a new window opens up
3. Go to the Misc tab
      -if it's hidden, you can click the right arrow until you get to Misc,or just make the window bigger
4. Turn "ON" Disable Hot Corner


















5. Close the the TaskBar window and gnome-shell-extension-prefs and you're done!

**I don't remember installing an extension to disable the hot corner so...if you don't find it, let me know!