Nowe posty

Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - overcq

Strony: [1] 2 3
1
Używam Chromium, ale pewnie dlatego, że mam do niego napisane kilkanaście rozszerzeń. Jednak ta przeglądarka zawiera kilka uciążliwych błędów oraz od połowy czerwca straci obsługę “Manifest v2”, więc pewnie przesiądę się na Firefoksa, którego i tak mam zainstalowanego, i skonwertuję do niego te rozszerzenia, o ile się będzie dało.

2
Rozumiem, że ‘server’ DNS jest uruchomiony w tym samym systemie? Możliwe, że go nie odpytuje.
Jaką masz zawartość pliku “/etc/resolv.conf”? Oraz wynik polecenia
ip route
?

3
Karty muzyczne / Odp: Linux Mint 21.3 Virginia brak dźwięku
« dnia: 2024-05-09, 14:54:28 »
Sprawdziłem na wersji ‘live’: nie wymaga konfiguracji, odtwarza dźwięk. Natomiast u mnie ‘hostem’ jest Linux.
Pytania dodatkowe ;) :
1. Czy inny system testowy, nowo utworzony, uruchomiony w VirtualBox odtwarza dźwięk?
2. Czy w Windowsie masz inne dźwięki? To może być problem z Windowsem, jego ustawieniami.

4
Karty muzyczne / Odp: Linux Mint 21.3 Virginia brak dźwięku
« dnia: 2024-05-08, 16:06:21 »
Widzę, że masz zainstalowany PipeWire. Przypuszczalnie wymaga konfiguracji.
U mnie, gdy zainstaluję PipeWire, to programy zwykle wybierają ten system i też nie mam dźwięku, nie w maszynie wirtualnej.

5
Na przykład tak:
DEFAULT_ITEM=
if [ -n "$1" ]; then
    DEFAULT_ITEM="--default-item $1"
fi
OUTPUT_0=temp-0.txt
OUTPUT=temp.txt
dialog --clear --title 'Okno dialogowe Menu' --backtitle BASH $DEFAULT_ITEM --menu 'Twój wybór:' 10 40 3 1 'Pozycja 1' 2 'Pozycja 2' 3 'Pozycja 3' 2> "$OUTPUT"
BUTTON=$?
if [ "$BUTTON" -eq 0 ]; then
    echo "Wybrałeś Ok"
    echo $(( $(< "$OUTPUT" ) + 1 )) > "$OUTPUT_0"
    exec sh untitled.sh $(< "$OUTPUT_0" )
elif [ "$BUTTON" -eq 1 ]; then
    echo "Wybrałeś Anuluj"
    exec sh untitled.sh $(< "$OUTPUT_0" )
else
    echo "Niczego nie wybrałeś"
fi
echo $(< "$OUTPUT" )

6
Nie wiem o co dokładnie pytasz.
Jeśli chcesz przejść do drugiego wiersza w dialogu, to możesz użyć klawisza strzałki w dół lub 2.
Jeśli chcesz, żeby skrypt przeszedł do obsługi wybranej pozycji menu dialogu po jego zamknięciu, to potrzebujesz odczytać zawartość zmiennej “$BUTTON” w drugim przypadku, a nie tekstu “BUTTON”. Czyli coś w rodzaju:
OUTPUT=temp.txt
> "$OUTPUT"
dialog --clear --title 'Okno dialogowe Menu' --backtitle BASH --menu 'Twój wybór:' 10 40 3 1 'Pozycja 1' 2 'Pozycja 2' 3 'Pozycja 3' 2> "$OUTPUT"
BUTTON=$?
if [ "$BUTTON" -eq 0 ]; then
    echo "Wybrałeś Ok"
elif [ "$BUTTON" -eq 1 ]; then
    echo "Wybrałeś Anuluj"
    exec sh untitled.sh
else
    echo "Niczego nie wybrałeś"
fi
echo $(< "$OUTPUT" )

7
Gry / Odp: Problem ze sterownikami.
« dnia: 2024-04-12, 17:21:27 »
Z tego, co jest w sieci, wynika, że “nouveau” nie obsługuje akceleracji dwuwymiarowej, nie wspiera zmiany częstotliwości zegara dla tej karty oraz wymaga ‘firmware’ podpisanego przez Nvidię do zainicjowania karty.
Natomiast ciekawi mnie, jakie są komunikaty dla gry, która działa, przy obecnej konfiguracji. Takiej gry, która wykorzystuje OpenGL.

8
Już to znalazłem czytając źródła “emerge”.
“emerge” ma ‘scheduler’ w “/usr/lib/python3.11/site-packages/_emerge/Scheduler.py”, który zawiera od linii 1524:
             # By default, merge-wait only allows merge when no builds are executing.
             # As a special exception, dependencies on system packages are frequently
             # unspecified and will therefore force merge-wait.
             is_system_pkg = build.pkg in self._deep_system_deps
             if not build.build_opts.buildpkgonly and (
                 "merge-wait" in build.settings.features or is_system_pkg
             ):
                 self._merge_wait_queue.append(merge)
                 if is_system_pkg:
                     merge.addStartListener(self._system_merge_started)
             else:
                 self._task_queues.merge.add(merge)
                 merge.addExitListener(self._merge_exit)
                 self._status_display.merges = len(self._task_queues.merge)
Za wyłączenie tego mechanizmu odpowiada “-merge-wait” w zmiennej FEATURES.

Jednak według mnie powinno być to trochę inaczej rozwiązane.
Jeśli ‘scheduler’ gwarantowałby zatrzymywanie kompilacji przebiegającej w osobnych wątkach i wtedy wykonywał “merge”, to wtedy ten mechanizm mógłby pozostać włączony. Ale do tego najlepiej potrzebna by była wiedza o zależnościach kompilacji pakietów od tych, które są właśnie skompilowane.

9
Od którejś aktualizacji ‟portage” zauważyłem, że przy większej ilości paczek instalowanych naraz jednym poleceniem (np. “emerge --emptytree @world”) są one kompilowane w seriach, ale nie instalowane (i kompilacje nie usuwane) do czasu zakończenia serii. Powoduje to konieczność posiadania przestrzeni dyskowej (w “/var/tmp/portage”) na wszystkie kompilacje paczek z danej serii. Tutaj przykład.
Dodam, że w “/etc/portage/make.conf” mam ustawione:
MAKEOPTS=-j2
EMERGE_DEFAULT_OPTS='--ask-enter-invalid --jobs=2 --quiet-build'
Czyli maksymalnie dwa zadania kompilacji, w których będą maksymalnie dwa równoległe “make”.
Czy za ilość kompilacji w serii przed instalacją paczek odpowiada jakaś opcja?

11
Inne / Ile pingwinów?
« dnia: 2024-03-27, 05:42:07 »
Zastanawiam się, ile obrazków pingwina wyświetla się przy starcie kernela Linuksa dla procesorów takich jak Intel i7 lub i9, który może mieć do 18 rdzeni. Poza tym chyba są różne rodzaje rdzeni. (U mnie na starym i5 wyświetlają się cztery.)

12
Sterownik ze strony EDUP zawiera źródła do kompilacji modułu kernela, “wpa_supplicant”, narzędzia i jakąś dokumentację.
Nawet jeśli pobierzesz ten sterownik, to jest on przestarzały i nie nada się do nowych kerneli. Ale załączyłem plik poprawek (‘patch’), który umożliwia kompilację dla kernela 6.7.9.
Moduł kernela trzeba skompilować ze źródeł, więc w systemie musisz mieć środowisko kompilacji modułów kernela. “wpa_supplicant” może wystarczy ten dostarczony z dystrybucją Linuksa, a może będzie potrzeba skompilować ze źródeł ze zmianami.
Nie wiem, jak jest w Kali Linux, ale u mnie w Gentoo dało się skompilować moduł, a z doświadczenia z moją, starą kartą WiFi wiem, że trzeba było też skompilować “wpa_supplicant”, ponieważ karta nie obsługuje jego nowszych funkcji. Po załadowaniu modułu i uruchomieniu “wpa_supplicant” okaże się, czy potrzebna jest jego dostosowana wersja.

Jeśli orientujesz się w tym, co robić i jak przygotować środowisko kompilacji, to tu jest instrukcja:
Na stronie https://www.szedup.com/support/driver-download/usb-adpeter/ax1685/ jest przycisk “For Linux” “Download”. Stamtąd pobierasz plik “RTL8832AU_WiFi_linux_v1.15.0.1-0-g487ee886.20210714.tar.gz”. Rozpakowujesz.
W rozpakowanym katalogu “RTL8852AU_WiFi_linux_v1.15.0.1-0-g487ee886.20210714” przechodzisz do podkatalogu “drivers” i rozpakowujesz plik “rtl8852AU_WiFi_linux_v1.15.0.1-0-g487ee886.20210714.tar.gz”.
Stosujesz ‘patch’, który załączyłem do posta. Wykonujesz jako “root” polecenie “make”, a następnie “make install”. Ładujesz moduł “8852au” do kernela.

Nie mogę zagwarantować, że z tak poprawionych źródeł modułu powstanie poprawnie działający sterownik.

13
Inne / Odp: Jak zmienić lokalizację zapasowej tablicy GPT?
« dnia: 2024-01-06, 11:42:54 »
Problem był w tym, że zapasowa tablica partycji nie mogła być zapisana na dysk z powodu błędu zapisu sektora.

Rozwiązałem to ręcznie: przesunąłem (skopiowałem z podstawowej) zapasową tablicę partycji wstecz o kilkadziesiąt sektorów w obszarze nie używanym przez ostatnią partycję na dysku (jest taki obszar ok. 700 kB), zmodyfikowałem ‘header’ zapasowej tablicy partycji, w którym ustawiłem nową lokalizację tablicy partycji i sumę kontrolną ‘headera’.

Wykorzystałem następujący skrypt, gdzie “binary-read” i “binary-write” to programy pakietu binary-change:
Kod: shell [Zaznacz]

#!/bin/bash
#*******************************************************************************
trap 'rm "$header" "$header_crc32" "$table"' EXIT
header="$( mktemp )"
header_crc32="$( mktemp )"
table="$( mktemp )"
#===============================================================================
dd if=/dev/sda of="$header" bs=512 skip=1 count=1
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
header_sector=$( binary-read -f "$header" -p 0x20 -l -s 8 )
table_sector=$(( $header_sector - 32 - 32 ))
partition_last_sector=$( fdisk -l /dev/sda | tail -n 2 | head -n 1 | sed -e 's`^[^ ][^ ]*  *[0-9][0-9]*  *\([0-9][0-9]*\).*$`\1`' )
if [ $header_sector -le $partition_last_sector -o $table_sector -le $partition_last_sector ]; then
    echo 'Header or table sector too low'
    exit 1
fi
binary-write -f "$header" -p 0x10 -l -s 4 -d 0 -p 0x30 -l -s 8 -d $(( $table_sector - 1 ))
dd if="$header" of="$header_crc32" bs=92 count=1
crc32=$( crc32 "$header_crc32" )
binary-write -f "$header" -p 0x10 -l -s 4 -d 0x$crc32
dd if="$header" of=/dev/sda bs=512 seek=1
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dd if=/dev/sda of="$table" bs=512 skip=2 count=32
binary-write -f "$header" -p 0x10 -l -s 4 -d 0 -p 0x18 -l -s 8 -d $header_sector -p 0x20 -l -s 8 -d 1 -p 0x48 -l -s 8 -d $table_sector
dd if="$header" of="$header_crc32" bs=92 count=1
crc32=$( crc32 "$header_crc32" )
binary-write -f "$header" -p 0x10 -l -s 4 -d 0x$crc32
dd if="$header" of=/dev/sda bs=512 seek=$header_sector
dd if="$table" of=/dev/sda bs=512 seek=$table_sector
gdisk -l /dev/sda
#*******************************************************************************

14
Całe szczęście, że wystąpiła sprzeczność adresu zapasowej tablicy partycji w przypadku wydanego przez Ciebie polecenia i tablica partycji nie została zapisana, ponieważ “sgdisk -e” przenosi zapasową tablicę partycji na koniec dysku, a tutaj potrzeba odtworzyć podstawową tablicę partycji z zapasowej.

Normalnie zapasowa tablica jest na końcu dysku, tak jak jest napisane tutaj. Ale chyba nie ma gotowych poleceń, by ją przywrócić do podstawowej tablicy partycji GPT, gdy jest już obecna tablica starego typu (MBR). Ale w Twoim przypadku można umiejętnie użyć poleceń “dd” i masz rozwiązany problem, o ile nic więcej nie zmieniłeś na dysku.

Czyli potrzeba:
  • Skopiować do pierwszego pliku ‘header’ zapasowej tablicy partycji GPT czyli ostatni sektor dysku (512 bajtów).
  • Skopiować do drugiego pliku zapasową tablicę partycji GPT czyli 32 sektory przed ostatnim sektorem dysku (32 × 512 bajtów).
  • Sprawdzić poprawność danych w tych plikach.
  • Sprawdzić, czy na docelowym dysku znajdują się przed partycjami wolne 34 sektory.
  • Skopiować pierwszy plik do drugiego sektora dysku (licząc sektory od 1).
  • Skopiować drugi plik do sektorów dysku od 3 (licząc od 1).

15
Inne / Jak zmienić lokalizację zapasowej tablicy GPT?
« dnia: 2024-01-05, 17:40:33 »
Mam już dość długo używany dysk HDD. I od niedawna, od czasu ostatniej modyfikacji tablicy partycji, pojawia się taki komunikat po uruchomieniu
fdisk -l /dev/sda
The backup GPT table is corrupt, but the primary appears OK, so that will be used.
Po czym następuje poprawne wyświetlenie zawartości tablicy partycji.
Skopiowałem drugi sektor dysku programem “dd” i sprawdziłem, co znajduje się w 8 bajtach pod adresem 0x20 czyli “Backup LBA”, zgodnie z Wikipedią. I jest tam adres 0x74706daf, który wskazuje prawdopodobnie na ostatni sektor dysku albo nawet poza dysk.

Czy jest jakieś narzędzie, które pozwala zmienić lokalizację zapasowej tablicy GPT, tak by była w nie uszkodzonym sektorze (lub w granicach dysku) bez konieczności ponownej instalacji systemu?

Strony: [1] 2 3