Inlägg

Inlägg som sebmod har skrivit i forumet
Av sebmod
Skrivet av Yoshman:

Att det går segt kanske inte är så konstigt när det dels handlar om ett projekt som bara verkar vara ett par månader gammalt.

Men framförallt finns ju inga high-end RISC-V CPUer ännu. Denna SpaceMIT X60 verkar vara lite piggare än den Ky X1 som sitter i bl.a. Orange Pi RV2. Har den senare och konstaterat att den presterar på RPi3 nivå (Cortex A53). SpaceMIT X60 verkar jämföras som ett par tiotal procent snabbare än Cortex A55, så ~50 % än Orange Pi RV2 per kärna. Fortfarande långsammare än RPi4...

Vad jag förstår är Ky X1 en rebrandad Spacemit K1/X60 (den verkar i alla fall kunna använda samma stöd av det som hittills upstreamats i linux: https://lore.kernel.org/spacemit/20250718085718-GYA695709@gen... och borde därför inte vara sämre men jag kanske missar något.

Skrivet av Yoshman:

...

Problemet just nu är att RISC-V är rätt omogen även på Linux. Alla grundläggande saker fungerar, tillräckligt bra för att man ska kunna bygga enklare lösningar redan idag (har inga problem att ersätta vissa av mina RPi-projekt med Orange Pi RV2 körandes Ubuntu Server 24.04). Men det är inte lika smooth sailing som att köra på ARM64 eller x86_64 än ens i headless fall...

...

En lite mindre rolig detalj med just Spacemit K1 är att medan den stödjer unaligned minnesåtkomst för grund-ISAn så gäller det inte för vektortillägget (och har ingen fallback i firmware)... GCC 14:s autovektorisering är inte särskilt bra på att hantera det och genererar i flera fall unaligned minnesåtkomst i sin vektoriserade kod. GCC 15 verkar dock ha löst det i princip helt och klarar att falla tillbaka på skalär kod även i ett test där jag avsiktligt använder minnet unaligned. LLVM (testat 18 upp till och med 20) verkar också ha problem, kanske något mindre än GCC 14 men en del kompilerade program verkar fortfarande dödas av SIGBUS. Kan också se att den gerererar unaligned minnesåtkomst i den vektoriserade koden i testet, dock är testet troligtvis egentligen UB så skulle inte dra någon större slutsats av att just det blir fel.

Jag köpte en BPI-F3 (som använder Spacemit K1) i juli förra året och den första vendor-kärnan baserad på 6.1 var horribel att arbeta med (den hängde sig alltid under belastning efter ett tag om CONFIG_COMPACTION var påslaget exempelvis...). Den baserad på 6.6 är mycket bättre men fortfarande inte helt hundra. Den på 6.1 (och även den på 6.6 till en början) hade de squashat allt till ett par mega-commits där även tidiga patchar på annat från innan de blev accepterade i mainline ingick vilket försvårat felsökning avsevärt, men det är väl tyvärr inte ovanligt att vendor-kärnor ser ut på det sättet. Det finns också en baserad på ca 6.13-rc1 men den har ett par uppenbara artefakter av att vara rebasad som man behöver fixa själv om den ska gå att bygga med rimlig config. Nu börjar iaf stödet i mainline linux bli användbart (om man inkluderar ett par till patchar som inte är helt igenom review) så slipper bråka mer med gamla vendor-kärnor vilket jag är glad över.

Av sebmod

Alla datorer borde ha en serieport (eller UART). Fördelen med ett så enkelt gränssnitt är att det i princip aldrig slutar funka. Även om nätverks- eller grafikstacken dör går det fortfarande att få en konsoll och diagnosticera systemet.

Av sebmod

Felsökningssteg kan ibland introducera nya fel, det är därför bra att börja med mindre invasiva åtgärder först.
Jag upplevde det senast när jag hjälpte min kusin med en dator som inte startade, han hade tidigare uppdaterat BIOS med flashback. Den POSTade inte alls och gav inte ifrån sig någon felkod. Tog vi bort minnet så pep den men så fort någon av RAM-stickorna kopplades in gjorde den ingenting. Vi testade en massa andra saker men nedgraderade till sist till en tidigare BIOS-version och då POSTade den (ironiskt nog så hade changelog på senaste versionen "Improve memory compatibility"). Visade sig att det ursprungliga problemet var att grafikkortet hade gett upp vilket kunde ha identifierats genom att koppla in bildkabeln till moderkortet istället då CPU hade IGP.

Av sebmod

Vet inte om det skulle fungera på er struktur men ett vanligt sätt att göra det stegvis är att lägga till IPv6 på en separat subdomän (exempelvis ipv6.sweclockers.com). Då borde eventuella problem med IPv6 inte påverka huvudsidan och så får ni mer data som hjälper er att utvärdera hur det fungerar. Det låter också oss som vill testa göra det

Har ni någon som använder Tre eller Tele2 till mobilabonnemang? Om jag kommer ihåg rätt har de båda IPv6 påslaget (kombinerat med CG-NAT för IPv4) så det kan vara ett alternativ för att testa internt. Tror det även ska fungera via internetdelning från telefon. Men ifall ni har ett övervakningssystem (typ nagios eller liknande) som inte har tillgång till IPv6 förstår jag att ni är lite tveksamma.

Av sebmod

Har ett Define C i nuläget men skulle matcha så mycket bättre med träfronten på North

Av sebmod

Mjukvara jag inte sett i tråden hittills:

tcpdump - analysera nätverkskommunikation
iperf2/iperf3 - smidigt verktyg för att mäta hastigheten på nätverket mellan två datorer
bird - en routing daemon som har det mesta (BGP, OSPF, mm)
nmap - analysera enheter på nätverk
efibootmgr - hantera (U)EFI boot-poster
pass - en avskalad lösenordshanterare som använder sig av gpg för kryptering
imv - ett alternativ till feh som funkar bra även i wayland
gnuplot - generera grafer
imagemagick och graphicsmagick - bildbehandling mm
smartmontools och hdparm - bra verktyg för hårddiskar och ssd:er
bemenu - ett alternativ till dmenu som funkar bra även i wayland

Av sebmod
Skrivet av wuseman:

Ja, det beror på att installationen gör den rw under installationen och det är inte svårt att förstå att dom då har använt just det kommandot i installations scriptet som gör det åt en för att det är inte möjligt annars som du nämner om den är read-only. Men det är inte aktuellt med en ominstallation de kommer bara använda samma eller skapa ytterliggare en. Men under installationen är inte aktuellt här utan han vill få bort den och inte lägga till en ny och då är den read-only om det inte är nån dist dev som inte vet vad han gör för då vill man inte ha den rw av flera anledningar det är precis därför b:/ är dold på windows. mountvol.exe /s /b gör den rw, den är dold som default och det är för den är "ro" ändå. Man kan ta bort den på windows också men det är krångligt och jobbigt som allt annat med produkter som har äckliga licenser som microsoft för att dom vill tjäna pengar.

Skrivet av wuseman:

Fundera på vad -c och L gör och var Arch Linux kommer stå någonstans.

--create or -c to create a new entry
--label or -L followed by the label to use as the boot entry;

Du säger emot dig själv. Efibootmgr används inte bara till att ta bort, utan även lägga till om man inte vill köra grub som du menar i inlägget antar jag. Så svaren tidigare är hur det är, du försökte i alla fall tro att du var lite duktigare än alla andra, det sluta som en pankaka, hade du läst gentoo urlen som länkades av @LemonIllusion hade du veta mer antar jag. Onödigt inlägg helt enkelt. Hade han gjort som du istället hade han behövt ta bort "Arch Linux" lika mycket som från personens tidigare installation som använde -c -L "Manjaro" under installationen istället.

Just det: -- Det är lite svårt att boota annars efter en installation om detta inte görs, strax innan mountas den till rw så det är såklart inte möjligt annars att skriva till den för read-only är precis vad det låter som -- Så fort installationen använt efivars till vad det är tänkt finns garanterat ett umount kommando också eller remount och då är den read-only igen --

Jag ber om ursäkt om det framstod som jag försökte rätta någon med mitt inlägg, det var inte min avsikt. Jag tyckte det var roligt att mitt tidigare inlägg var uppskattat och ville därför utveckla. Vad är det jag skrivit som säger emot något i den länkade artikeln? Jag har aldrig påstått att det bara går att ta bort boot-entrys med efibootmgr.

edit:
Okej, visst. Jag kan medge att när väl distributioner är installerade så är det ingen större mening att ha /sys/firmware/efi/efivars monterad rw förutom undantagsvis. LVFS/fwupd kan vara en exempelvis. Jag är också medveten om att vissa kommandon kan ha dålig effekt på uefi om efivars är monterad rw, `# rm -rf --no-preserve-root /` är väl klassikern som i vissa fall kan bricka uefi.
Min kommentar om liveavbilder hänvisar tillbaka till att jag skrev att det gick att göra ändringen på en sådan i mitt första inlägg.
Jag kunde antagligen ha varit tydligare med hur jag framfört det, men i mitt första inlägg inkluderade jag även en rad som visade hur /sys/firmware/efi/efivars skulle vara monterad för att göra ändringen, vilket visar rw.

Av sebmod
Skrivet av wuseman:

Bra inlägg ovanför, du behöver mounta efivars först som rw.

Börja med detta kommandot, sen kan du följa det som står i tidigare inlägg:
mount -o remount,rw /sys/firmware/efi/efivars

Utan att remounta den kommer du inte få göra ett dugg då efivars är som default read-only rom!

Det stämmer att /sys/firmware/efi/efivars behöver vara rw för att kunna göra ändringar. Verkar vara lite olika beroende på distribution om den är rw eller ro. De flesta liveavbilder jag testat har dock varit rw, svårt att installera bootloadern annars

Skrivet av Allexz:

Blir inte efibootmgr överskriven vid nästa installation av ett OS?

Antagligen ja. De vanligaste distributionerna gör en automatisk installation av bootloader och den kommer då att lägga till en boot-entry och sätta den som standard. Gäller även Windows, därför det är enklast att installera Windows först för dual-boot. Nu på uefi-tider så ligger dock den gamla boot-entryn kvar så är bara att sätta den som standard igen. Med efibootmgr kan ordningen ändras med parametern `-o`. Går ju också ofta att ändra ordningen i uefi-gränssnittett direkt om det inte är överdrivet dåligt.

Skrivet av LemonIllusion:

Och även om det var en bootloader behöver inte nödvändigtvis installation av OS innebära att den skrivs över.

Det stämmer att efibootmgr i sig inte är en bootloader, men skulle säga att en ny installation av os kommer att ändra boot-ordningen vanligtvis. Är väl mer undantagsvis som distributioner låter användaren välja hur bootloadern ska installeras/konfas som förval. efibootmgr kan som ditt citat säger använda uefi-firmware som en bootloader. Jag använde det för ett par år sedan, men bytte för att få bättre flexibilitet.
Körde något sådant här:

#!/bin/sh efibootmgr -c -L "Arch Linux" -l /vmlinuz-linux -u \ "cryptdevice=PARTUUID=a9c2f6c9-5e51-47de-b5b0-4fce3e5e6694:archroot \ root=/dev/mapper/archroot \ initrd=/intel-ucode.img \ initrd=/initramfs-linux.img rw"

Använde Arch vid den tidpunkten men har gått över till andra distributioner.

Av sebmod
Skrivet av jreklund:

Hej,

Vi har ingen intern plan på när IPv6 kommer att aktiveras skarpt. Det arbetet som har gjorts under den här tiden är att vi kontrollerat och åtgärdat databastabellerna och källkoden, så att stöd ska finnas. När arbetet fortskrider kommer vi behöva konfigurera vår testmiljö (då den ännu inte stödjer IPv6) och testa i större skala än bara för oss utvecklare. Efter lyckade tester med ej tappade inloggningar kan vår leverantör bara trycka på knappen, då det inte finns några hinder hos dem.

/ Johan

Tack för svar! Skriv gärna i den här tråden när ni börjar med öppnare tester.

Av sebmod

Hej,

Finns någon uppdatering om detta? Precis som @ZerxXxes skriver så har flera mobiloperatörer stöd för IPv6 i sina mobilnät numera.
Som det står här så verkar fler och fler operatörer planera för att införa IPv6 i sina nät eller redan gjort det.
Det finns även uppgifter som tyder på att anslutningar uppkopplas snabbare på IPv6, dvs att användarupplevelsen kan förbättras.

Sen sist har jag uppgraderat från tunnlar via he.net till ett eget autonomt system för IPv6. Jag får också publika IPv6-adresser via min mobiloperatör som annars delar ut CG-NATade IPv4-adresser.

Naturligtvis förväntar jag mig inte att IPv6 kan kopplas på omedelbart. Jag skulle dock gärna vilja se att det finns någon ungefärlig tidsuppskattning på när detta kan införas, alternativt om det är något tekniskt förhinder som gör att det inte går att införa.

Av sebmod

Om du har en distro installerad eller en liveusb kan du ta bort med `efibootmgr`.
Du kommer få något i stil med:

$ efibootmgr BootCurrent: 0000 Timeout: 0 seconds No BootOrder is set; firmware will attempt recovery Boot0000* Notebook Hard Drive Boot0001* Notebook Ethernet Boot0002* Notebook Ethernet Boot0003* Linux Boot Manager Boot0004* rEFInd Boot Manager

Vill du tex ta bort "Linux Boot Manager" kan du göra så här:

# efibootmgr -b 0003 -B BootCurrent: 0000 Timeout: 0 seconds No BootOrder is set; firmware will attempt recovery Boot0000* Notebook Hard Drive Boot0001* Notebook Ethernet Boot0002* Notebook Ethernet Boot0004* rEFInd Boot Manager

Detta borde funka direkt om du bootar linux från UEFI. Resultatet av `mount | grep efi` borde då vara något i stil med:

efi on /sys/firmware/efi/efivars type efivarfs (rw,relatime)

Av sebmod
Skrivet av Tommy:

Gäller väl de flesta distar, kör själv Arch och det är extremt sällan man behöver start om för att rulla igång en uppdatering.

Fast Arch kanske inte är det bästa exemplet om att inte behöva starta om vid uppdateringar.
Det har att göra med att Arch inte sparar gamla versioner av linuxkärnan och moduler (ungefär drivrutiner). Det kan då alltså hända att saker slutar fungera efter ett tag om kärnan uppdaterats och man inte startat om. Exempelvis kanske det inte går att montera en extern hårddisk (om filsystemet på den inte används på datorn i övrigt). Det går då att antingen starta om datorn eller ominstallera den gamla kärnan.
Det går att göra med något i stil med:

pacman -U /var/cache/pacman/pkg/linux-$version.tar.zst

Många andra distar sparar de gamla versionerna ett tag så då går det bra att vänta med omstart, men för att den nya kärnan ska användas behövs det. Om vi nu inte ska prata om livepatchning, men det är inget som används ofta i praktiken utanför vissa servrar.

Av sebmod

Jag har kört tunnlad IPv6 ganska länge. Min bredbandsleverantör ska ha IPv6 redo, men mitt stadsnät (Zitius) har fortfarande inget stöd. Nu kör jag mitt egna AS från en server på colocation och ett par VPS:er, och det är ju lite roligt att hålla på med BGP och andra routingprotokoll. Jag har självklart filter både ut och in så jag inte läcker prefix jag inte är tilldelad.

Av sebmod
Skrivet av lassesjo:

/.../
192.168.x.x har 254 möjliga noder, sen finns näten i 172.16.x.x med 254x254
/../

Här blev det lite fel. Först, det går att dela upp subnät i vilken storlek som helst, så länge de håller sig inom det tilldelade huvudnätet, alltså i detta fall 192.168.0.0/16, 172.16.0.0/12 eller 10.0.0.0/8. Några exempel: 192.168.128.0/19 (192.168.128.0-192.168.159.255), 172.18.0.0/15 (172.18.0.0-172.19.255.255), 10.192.0.0/12 (10.192.0.0-10.207.255.255). Det är dock inte alla konsumentrourar tillåter det.

Man förlorar 2 adresser för varje subnät (exklusive routern), så ju fler och mindre subnät, desto större förlust. 254 noder stämmer för /24 nätverk, men vet inte riktigt var du fick 254 * 254 från. Det går utmärkt att använda 172.16.0.0/24 och 172.16.255.0/24 som subnät, eller tex 172.16.254.255/23 och 172.16.255.0/23 som adresser. Om man delar upp 172.16.0.0/16 i /24 nät får man 256 * 254 adresser totalt för de näten.

Finns inget som kräver att man begränsar dig till de klassfulla storlekarna, om man nu inte har någon enhet med inkomplett implementering av internetprotokollen. Det maximala antalet adresser som går att använda i respektive tilldelning är 2^16-2 (hela 192.168.0.0/16), 2^10-2 (hela 172.16.0.0/12) och 2^24-2 (hela 10.0.0.0/8).

Subnätsuppdelning kan vara lite bedrägligt om man vill göra annat än de vanligaste uppdelningarna

Av sebmod

Jag skulle gissa på att nvidia-settings inte kan hitta DISPLAY (om du nu kör med X). Den är ofta :0, så prova att sätt den till det.
Jag skulle göra något sånt här:

#!/bin/sh -x LOG="/var/tmp/$(date "+autostart-%y%m%d_%H%m%S.log")" exec 2> "$LOG" > "$LOG" DISPLAY=":0" nvidia-settings --load-config-only exit 0

Då kommer du kunna se vad sh säger i loggen.
Jag har även för mig att bla debian och ubuntu kör med dash som sh istället för bash vilket kan ge små inkompatibiliteter ibland, men tvivlar på att det är så i detta fallet.

Av sebmod

Om du utgår från scenario 2 och urmarkerar Tagged: yes från raden med Bridge: WAN borde det ge dig resultatet du vill ha. I nuläget försöker din router ta internet från VLAN 2 på WAN vilket inte kommer funka.

Av sebmod
Skrivet av Sir. Haxalot:

Efter att ha fått första fakturan från Bredband 2 så vet jag inte om jag kan rekommendera dem trots att de erbjuder IPv6. De har lyckats med konststycket att fakturera ungefär 4x så mycket som det skulle kosta. Deras support verkar inte ha någon koll på någonting över huvud taget så får se om jag kommer att lösa detta utan att blanda in ARN.

Har ingen aning om det här stämmer på Bredband2, men vad jag vet så använder flera operatörer förtidsfakturering. Om de skickar första fakturan månaden efter du beställt abonnemanget så kommer den täcka 3 perioder: Del av första månaden, nuvarande månad och nästa månad. Sen har flera stadsnät en anslutningsavgift/startavgift också, men den borde ha framgått i beställningen.

Av sebmod

Hittade den här, bahnhofs delårsrapport Q3 2018 (möjligtvis betalvägg): https://www.svd.se/bors/news_detail.php?newsid=58dd6167-0368-400a-b471-3201e3c0f672

Citat:

/.../
Ur ett nättekniskt perspektiv driver vårt arbete fram ett stadigt ökande stöd för IPv6 bland partners, med målet att ytterligare förbättra prestandan. Bakgrunden till att vi driver på det sistnämnda, är bristen på IPv4 adresser som i praktiken är slut. Det har tyvärr varit mycket trögt att få igenom ett skifte till den nya standarden IPv6, som även skulle förbättra prestandan. Bahnhof har redan stöd för IPv6 i hela vårt nät, men eftersom det krävs att det även ska finnas stöd hos lokala partners i t.ex. stadsnät går det inte att koppla på.

Men nu tycks det som att verkligheten långsamt börjar hinna ifatt de flesta aktörer, och det finns numera en insikt i att skiftet till IPv6 radikalt förbättrar användarupplevelsen. De nät som har allra längst startsträcka för att stödja IPv6 är för närvarande Open Universe (Telenor) enligt uppgift först i Q3 2019, Telia Öppen Fiber/Zitius Q2 2019 samt Itux (Comhem) Q1-Q2 2019. Några av de stadsnät som är längst framme i teknikskiftet är istället Utsikt, MKB/Malmö, Fibra och IP-Only.
/.../

Av sebmod
Skrivet av Lordsqueak:

Artikeln missar poängen med 192khz helt och fokuserar bara på att vi inte kan höra över en viss frekvens. Ett vanligt argument. Vilket iofs är sant och riktigt, men..

Poängen med att använda högre samplerate är att det återger de frekvenser vi kan höra, mycket bättre. Precis som bilder som använder högre upplösning ser bättre ut.
För att fortsätta med bildanalogin, så skulle man kunna jämföra Nyquist problemet jag beskrev tidigare, med moire mönster i bilder. ( exempel https://d1ro734fq21xhf.cloudfront.net/attachments/00W94l-2338... )
Signalen förvanskas på ett liknande sätt så att volymen på en 22049 hz signal kommer att pendla mellan 100% och 0% med en svängning på 0,5 sekunder. Vid 10000hz så kommer signalen variera ung 2,5db vilket innebär att den kommer klippa ung, var fjärde top på signalen. 2,5db. Vilket bör vara en bra bit över vad som anses vara vad folk kan höra skillnad på. (1db verkar vara den nivå folk hör skillnad på)
Men det blir värre. När man mixar mer än en signal så ökar frekvensen på den sammansatta signalen till den högsta frekvensen. Vilket gör att problemet med sample rate påverkar även de lägre frekvenserna.

Ett annat problem är att vågformen ändrar karaktär med låg sample rate.
Musik är en väldigt komplex vågform, och tittar man lite närmare på vågformen så ser man att det är inte många samplingar mellan topparna.
Vi är väldigt duktiga på att höra skillnad på olika typer av vågformer. https://www.youtube.com/watch?v=1dFJfX6A6QQ <-- ett exempel på skillnaden, och jag tror vi får leta länge och väl innan vi hittar nån som inte hör skillnaden på det exemplet.
Om vi nu ska hårdgranska Nyquists påstående, så duger 44,1 khz endast till att återge en perfekt samplad 22,05 khz signal, OM det är en squarewave.
Exakt vad som krävs för att återge de andra typerna av toner, har jag inte undersökt, men vi behöver mer än 2 samplingar iallafall, vilket direkt gör att Nyquists teorem är helt oanvändbart i dessa sammanhang. (I bästa fall så duger den kanske till att beskriva digitala signaler på/av, men med problemet med signalförluster som vi gått igenom ovan.)
Som jag nämnt tidigare så blir en komplex signals svängningsfrekvens en summa som motsvarar den högsta frekvensen, så om vi antar att vi kommer behöva minst 8 samplingar för att återge en sinus kurva, så landar vi på en max frekvens av ca 5khz. Något som borde vara inom det hörbara spektrumet. Dvs, vi borde kunna höra att toner ändrar karaktär på grund av att samplingsfrekvensen ej är tillräckligt hög. Kom ihåg att en komplex vågforms frekvens är minst så hög som den högsta individuella signalen, dvs detta fenomen är något som påverkar alla frekvenser i vågformen.

Men detta är ju bara teori.
Hur det låter på riktigt är mer att vid högre samplerates, så är det lättare att urskilja individuella instrument, utan att dom påverkas av de andra instrumenten. En FET bas kommer inte längre att få diskanten att försvinna, utan båda låter bra utan påverkan av varandra.
I kort, högre samplerate återger de frekvenser vi Kan höra, mycket bättre. precis på samma sätt som att högre upplösning får bilder att se bättre ut.

Nej, artikeln fokuserar inte bara på att vi inte kan höra över en viss frekvens. Här är innehållsförteckningen:

Citat:

Intro

Physiology
Audible spectrum
Golden ears
Spectrophiles
Intermodulation
Fallacies
Oversampling

16 vs. 24 bit
Noise
Dynamic range
Signal-to-noise
Why 24 bit?

Listening tests
Caveat Lector
Confirmation bias
Loudness tricks
Clipping
Different masters
Inadvertant cues

Better headphones
Lossless formats
Better masters
Surround

Outro
Further reading
Footnotes

Jag skulle väldigt gärna vilja ha källor på dina påståenden, både den teoretiska och experimentella biten. Jag är själv på inget sätt någon expert på signalbehandling, vilket är ett stort och komplext område, så jag förbehåller mig själv att jag kan ha fel. Med det sagt så hittar jag inget som stödjer dina påståenden.

När en gör egna tester är det viktigt att vara medveten om bland annat placebo-effekt och confirmation bias. Det står mer om det i artikeln under rubrikerna Confirmation bias till Inadvertant cues. Ett sätt att undvika mycket av detta är ABX-tester, en typ av dubbelblindtest.

Den artikel jag länkat till refererar till en studie med dubbelblindtest. Från artikeln:

Citat:

/.../
In 554 trials, listeners chose correctly 49.8% of the time. In other words, they were guessing. Not one listener throughout the entire test was able to identify which was 16/44.1 and which was high rate [15], and the 16-bit signal wasn't even dithered!
/.../

edit:
Se också speciellt sida 23-26 i denna artikel (som länkas i den första artikeln). Resten av den är också intressant.

Av sebmod
Skrivet av Lordsqueak:

Problemet med Nyquists teorem är att det inte funkar.
dvs, det går inte att sampla 22,05khz med 44,1khz, därför att om du inte har väldig tur med vart samplingen tas, så kommer det i värsta fall resultera i en signal med 0 värde. aningens lägre signaler kommer att pendla mellan max och 0 värde. dvs, resultatet blir oanvändbart.

Jag petade runt lite granna med detta fenomen för typ 15 år sedan, och kom fram till att även vid förhållandevis låga 10khz, så får man en 2,5db variation på peaks på signalen. Dvs amplituden på topparna kommer att variera mellan +-0db och -2,5db. I ljudsammanhang så är detta en väldigt stor variation.

Summa summarum, Det går inte att gå efter Nyquists teorem, utan man måste välja en acceptabel nivå av förlust av signalstyrka.

Nu är ju iofs detta inget vi egentligen "hör", då det är väldigt sällan vi lyssnar på något högfrekvent ljud för sig. För det mesta så begravs övertoner och annat högfrekvent ljud i en komplex vågform, och vi kan lugnt lyssna vidare på vårat sönder komprimerade, förlustkomprimerat Spotify/youtube/whatever. (men Loudness War, är ett tema för en annan dag.)

Rent generellt så duger 44,1khz, om man nu inte råkar ha tränad hörsel och känner till hur det egentligen ska låta. (en högre samplingsfrekvens låter dig lättare skilja ut olika ljud och "begraver inte diskanten i basen"), men jag misstänker att artikelförfattaren kommer till detta.

Skrivet av backfeed:

Nyquists stämmer på så vis att lägsta möjliga samplingsfrekvens som kan reproducera en 22,05 kHz-signal är 44,1 kHz. Men sen är det väl som du säger, att det bara kommer matcha eventuell analog originalsignal till 100% i idealfallet.

Eller om man har ätit en ordentlig dos placebopiller, för jag tippar att det är väldigt få (kanske ingen) som skulle höra någon skillnad alls mellan 44,1 kHz och t.ex. 96 eller 192 kHz i ett korrekt uppsatt blindtest (och samma sak vad gäller 16 bit upplösning vs t.ex. 20 eller 24 bit).

16 bit 44,1 kHz actually ought to be enough for anyone.

Det finns en väldigt informativ artikel och tillhörande video angående samplingsfrekvens och bitdjup på xiph.org: artikel och video. Den här videon är också intressant. De är lite daterade, men är fortfarande väldigt relevanta. xiph.org är en organisation som utvecklar öppna video- och ljudkodekar.